Vba'da zaman farkı nasıl hesaplanır (örneklerle)
İki zaman arasındaki farkı hesaplamak için VBA’da aşağıdaki temel sözdizimini kullanabilirsiniz:
Sub FindTimeDifference()
Dim i As Integer
For i = 2 To 7
'calculate time difference in days
Range(" C " & i) = Range(" B " & i) - Range(" A " & i)
'calculate time difference in hours
Range(" D " & i) = (Range(" B " & i) - Range(" A " & i)) * 24
'calculate time difference in minutes
Range(" E " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60
'calculate time difference in seconds
Range(" F " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60 * 60
Next i
End Sub
Bu özel makro, A2:A7 ve B2:B7 aralıklarındaki karşılık gelen zamanlar arasındaki farkı hesaplayacak ve aşağıdaki sonuçları döndürecektir:
- C2:C7 gün cinsinden zaman farkını içerecektir
- D2:D7 saat cinsinden zaman farkını içerecektir
- E2:E7 dakika cinsinden zaman farkını içerecektir
- F2:F7 saniye cinsinden zaman farkını içerecektir
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: VBA’da Zaman Farkını Hesaplama
Excel’de aşağıdaki iki başlangıç ve bitiş zamanı sütununa sahip olduğumuzu varsayalım:
Her başlangıç ve bitiş zamanı arasındaki zaman farkını hesaplamak ve sonuçları C’den F’ye kadar olan sütunlarda görüntülemek için aşağıdaki makroyu oluşturabiliriz:
Sub FindTimeDifference()
Dim i As Integer
For i = 2 To 7
'calculate time difference in days
Range(" C " & i) = Range(" B " & i) - Range(" A " & i)
'calculate time difference in hours
Range(" D " & i) = (Range(" B " & i) - Range(" A " & i)) * 24
'calculate time difference in minutes
Range(" E " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60
'calculate time difference in seconds
Range(" F " & i) = (Range(" B " & i) - Range(" A " & i)) * 24 * 60 * 60
Next i
End Sub
Bu makroyu çalıştırdığımızda aşağıdaki çıktıyı alıyoruz:
C’den F’ye kadar olan sütunlar, başlangıç ve bitiş saatleri arasındaki zaman farkını farklı birimlerde görüntüler.
Ek kaynaklar
Aşağıdaki eğitimlerde VBA’da diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:
VBA’da tarihler nasıl karşılaştırılır
VBA’da iki tarih arasındaki günler nasıl hesaplanır
VBA’da dizeyi tarihe dönüştürme