Vba'da tarihler nasıl karşılaştırılır (örneklerle)


İki tarihi karşılaştırmak için VBA’da aşağıdaki temel sözdizimini kullanabilirsiniz:

 SubCompareDates ()
    Dim i As Integer

    For i = 2 To 5
        If CDate(Range(" A " & i)) < CDate(Range(" B " & i)) Then
            Result = " First Date is Earlier "
    Else
        If CDate(Range(" A " & i)) > CDate(Range(" B " & i)) Then
                Result = “ First Date is LaterElse
                Result = " Dates Are Equal "
            End If
        End If
        
    Range(" C " & i) = Result
    
    Next i
End Sub

Bu özel örnek, A2:A5 ve B2:B5 aralığındaki karşılık gelen hücrelerdeki tarihleri karşılaştıracak ve C2:C5 aralığındaki tarih karşılaştırmalarının sonucunu döndürecektir.

Not : CDate işlevi, belirli bir hücrenin değerini tarihe dönüştürür.

Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.

Örnek: VBA’daki tarihleri karşılaştırın

Excel’de tarih içeren aşağıdaki iki sütuna sahip olduğumuzu varsayalım:

Eşleşen her satırdaki tarihleri karşılaştırmak ve tarih karşılaştırma sonuçlarını C sütununda görüntülemek istediğimizi varsayalım.

Bunun için aşağıdaki makroyu oluşturabiliriz:

 SubCompareDates ()
    Dim i As Integer

    For i = 2 To 5
        If CDate(Range(" A " & i)) < CDate(Range(" B " & i)) Then
            Result = " First Date is Earlier "
    Else
        If CDate(Range(" A " & i)) > CDate(Range(" B " & i)) Then
                Result = “ First Date is LaterElse
                Result = " Dates Are Equal "
            End If
        End If
        
    Range(" C " & i) = Result
    
    Next i
End Sub

Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:

Tarih karşılaştırmalarının sonuçları artık C sütununda görüntüleniyor.

Ek kaynaklar

Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

VBA: Bir sayfayı birden çok sütuna göre sıralama
VBA: Aralıktaki satır sayısı nasıl sayılır?
VBA: bir sütunun nasıl filtreleneceği

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir