Як обчислити різницю в часі у vba (з прикладами)
Ви можете використовувати такий базовий синтаксис у 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
Цей конкретний макрос обчислить різницю між відповідними часами в діапазонах A2:A7 і B2:B7 і поверне такі результати:
- C2:C7 міститиме різницю в часі в днях
- D2:D7 міститиме різницю в часі в годинах
- E2:E7 міститиме різницю в часі в хвилинах
- F2:F7 міститиме різницю в часі в секундах
У наступному прикладі показано, як використовувати цей синтаксис на практиці.
Приклад: обчислення різниці в часі у VBA
Припустімо, що в Excel є наступні два стовпці часу початку та закінчення:
Ми можемо створити наступний макрос для обчислення різниці в часі між кожним часом початку та закінчення та відображення результатів у стовпцях C–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
Коли ми запускаємо цей макрос, ми отримуємо такий результат:
Стовпці від C до F відображають різницю в часі між часом початку та закінчення в різних одиницях вимірювання.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:
Як порівняти дати у VBA
Як обчислити дні між двома датами у VBA
Як перетворити рядок на дату у VBA