DateDiff Açıklama
Belirtilen aralığa göre iki tarih değeri arasındaki farkı döndürür.
Basit DateDiff Örnekleri
İşte basit bir DateDiff örneği:
123 | Alt TarihDiff_Year()MsgBox DateDiff("yyyy", #1/1/2019#, #8/1/2021#)Alt Bitiş |
Bu kod 2 değerini döndürür. Bu, yıldaki (“yyyy” ile gösterilen) 2 gün arasındaki farktır. (2021 - 2022 = 2)
Yukarıdaki örnekte, tarih1 ve tarih2 konumlarının değiştirilmesi.
123 | Alt TarihDiff_Year()MsgBox DateDiff("yyyy", #8/1/2021#, #1/1/2019#)Alt Bitiş |
Bu kod -2 döndürür.
DateDiff Sözdizimi
VBA Düzenleyicide, DateDiff İşlevinin sözdizimini görmek için “DateDiff(” yazabilirsiniz:
DateDiff işlevi 5 bağımsız değişken içerir:
Aralık: Zaman birimi (Günler, Aylar, Yıllar, vb.). Dize olarak girin. (ör. Ay için “m”)
Ayar | Açıklama |
---|---|
yyyy | Yıl |
Q | Çeyrek |
m | Ay |
y | Yılın Günü |
NS | Gün |
w | Hafta içi |
ww | Hafta |
H | Saat |
n | Dakika |
s | İkinci |
Tarih1, Tarih2: Hesaplamada kullanmak istediğiniz iki tarih.
Haftanın ilk günü: Haftanın ilk gününü belirten bir sabit. Bu isteğe bağlıdır. Belirtilmezse Pazar olduğu varsayılır.
Devamlı | Değer | Açıklama |
---|---|---|
vbUseSystem | 0 | NLS API ayarını kullanın. |
vbPazar | 1 | Pazar (varsayılan) |
vbPazartesi | 2 | Pazartesi |
vbTuesday | 3 | Salı |
vbÇarşamba | 4 | Çarşamba |
vbPerşembe | 5 | Perşembe |
vbCuma | 6 | Cuma |
vbCumartesi | 7 | Cumartesi |
Yılın İlk Haftası: Yılın ilk haftasını belirten bir sabit. Bu isteğe bağlıdır. Belirtilmezse, ilk haftanın 1 Ocak'ın gerçekleştiği hafta olduğu varsayılır.
Devamlı | Değer | Açıklama |
---|---|---|
vbUseSystem | 0 | NLS API ayarını kullanın. |
vbFirstJan1 | 1 | 1 Ocak'ın (varsayılan) gerçekleştiği hafta ile başlayın. |
vbFirstFourDays | 2 | Yeni yılda en az dört günü olan ilk hafta ile başlayın. |
vbFirstFullWeek | 3 | Yılın ilk tam haftasıyla başlayın. |
VBA Programlama | Code Generator sizin için çalışıyor!
Excel VBA DateDiff İşlevi Örnekleri
Referans Tarihleri
Başlamak için, VBA DateDiff İşlevini kullanarak tarihlere başvurmanın farklı yollarını göstereceğiz.
Bu DateDiff işlevlerinin her biri aynı sonucu verir:
123456789 | Sub DateDiff_ReferenceDates()MsgBox DateDiff("m", #4/1/2019#, #8/1/2021#)MsgBox DateDiff("m", DateSerial(2019, 4, 1), DateSerial(2021, 8, 1))MsgBox DateDiff("m", DateValue("1 Nisan 2022"), DateValue("1 Ağustos 2022"))Alt Bitiş |
Veya tarihleri içeren hücrelere başvurabilirsiniz:
12345 | Sub DateDiff_ReferenceDates_Cell()MsgBox DateDiff("m", Range("C2").Value, Range("C3").Value)Alt Bitiş |
Veya tarih değişkenleri oluşturun ve bunlara referans verin:
123456789 | Alt DateDiff_Variable()Dim dt1 As Tarih, dt2 As Tarihdt1 = #4/1/2019#dt2 = #8/1/2021#MsgBox DateDiff("m", dt1, dt2)Alt Bitiş |
VBA Kodu Örnekleri Aramaktan Bıktınız mı? AutoMacro'yu deneyin!
Farklı Aralık Birimlerini Kullanma
Çeyrek
123 | Sub DateDiff_Quarter()MsgBox "çeyrek sayısı: " & DateDiff("q", #1/1/2019#, #1/1/2021#)Alt Bitiş |
ay
123 | Alt TarihDiff_Month()MsgBox "ay sayısı: " & DateDiff("m", #1/1/2019#, #1/1/2021#)Alt Bitiş |
Günler
123 | Alt TarihDiff_Day()MsgBox "gün sayısı: " & DateDiff("d", #1/1/2019#, #1/1/2021#)Alt Bitiş |
Haftalar
123 | Sub DateDiff_Week()MsgBox "hafta sayısı: " & DateDiff("w", #1/1/2019#, #1/1/2021#)Alt Bitiş |
Saat
123456789101112 | Alt TarihDiff_Hour()Dim dt1 As TarihDim dt2 As TarihDim nDiff As Longdt1 = #8/14/2019 9:30:00 AM#dt2 = #8/14/2019 1:00:00 PM#nDiff = DateDiff("h", dt1, dt2)MsgBox "saat:" & nDiffAlt Bitiş |
dakika
123 | Alt TarihDiff_Dakika()MsgBox "mins: " & DateDiff("n", #8/14/2019 9:30:00 AM#, #8/14/2019 09:35:00 AM#)Alt Bitiş |
saniye
123 | Alt TarihDiff_Second()MsgBox "secs: " & DateDiff("s", #8/14/2019 09:30:10 AM#, #8/14/2019 09:30:22 AM#)Alt Bitiş |