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

Когда мы запускаем этот макрос, мы получаем следующий вывод:

VBA вычисляет разницу во времени

В столбцах C–F отображается разница во времени между временем начала и окончания в разных единицах измерения.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

Как сравнить даты в VBA
Как рассчитать дни между двумя датами в VBA
Как преобразовать строку в дату в VBA

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *