Як обчислити різницю в часі у 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *