Как рассчитать разницу во времени в 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