Como calcular a diferença de tempo em vba (com exemplos)
Você pode usar a seguinte sintaxe básica em VBA para calcular a diferença entre dois horários:
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
Esta macro específica calculará a diferença entre os tempos correspondentes nos intervalos A2:A7 e B2:B7 e retornará os seguintes resultados:
- C2:C7 conterá a diferença horária em dias
- D2:D7 conterá a diferença horária em horas
- E2:E7 conterá a diferença horária em minutos
- F2:F7 conterá a diferença horária em segundos
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: Calcular diferença de tempo em VBA
Suponha que temos as duas colunas a seguir de horários de início e término no Excel:
Podemos criar a seguinte macro para calcular a diferença de horário entre cada horário de início e término e exibir os resultados nas colunas C a 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
Quando executamos esta macro, recebemos a seguinte saída:
As colunas C a F exibem a diferença de tempo entre os horários de início e término em unidades diferentes.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em VBA:
Como comparar datas em VBA
Como calcular dias entre duas datas em VBA
Como converter string para data em VBA