Jak obliczyć różnicę czasu w vba (z przykładami)
Aby obliczyć różnicę między dwoma czasami, możesz użyć następującej podstawowej składni w VBA:
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
To konkretne makro obliczy różnicę między odpowiednimi czasami w zakresach A2:A7 i B2:B7 i zwróci następujące wyniki:
- C2:C7 będzie zawierać różnicę czasu w dniach
- D2:D7 będzie zawierać różnicę czasu w godzinach
- E2:E7 będzie zawierać różnicę czasu w minutach
- F2:F7 będzie zawierać różnicę czasu w sekundach
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Oblicz różnicę czasu w VBA
Załóżmy, że w programie Excel mamy następujące dwie kolumny czasu rozpoczęcia i zakończenia:
Możemy utworzyć następujące makro, aby obliczyć różnicę czasu między każdą godziną rozpoczęcia i zakończenia i wyświetlić wyniki w kolumnach od C do F:
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
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Kolumny od C do F wyświetlają różnicę czasu pomiędzy czasem rozpoczęcia i zakończenia w różnych jednostkach.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
Jak porównać daty w VBA
Jak obliczyć dni między dwiema datami w VBA
Jak przekonwertować ciąg znaków na bieżąco w VBA