Come calcolare la differenza oraria in vba (con esempi)
È possibile utilizzare la seguente sintassi di base in VBA per calcolare la differenza tra due tempi:
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
Questa particolare macro calcolerà la differenza tra i tempi corrispondenti negli intervalli A2:A7 e B2:B7 e restituirà i seguenti risultati:
- C2:C7 conterrà la differenza oraria in giorni
- D2:D7 conterrà la differenza oraria in ore
- E2:E7 conterrà la differenza oraria in minuti
- F2:F7 conterrà la differenza oraria in secondi
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: calcola la differenza oraria in VBA
Supponiamo di avere le seguenti due colonne di orari di inizio e fine in Excel:
Possiamo creare la seguente macro per calcolare la differenza oraria tra ciascuna ora di inizio e di fine e visualizzare i risultati nelle colonne da 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 eseguiamo questa macro, riceviamo il seguente output:
Le colonne da C a F mostrano la differenza oraria tra l’ora di inizio e quella di fine in unità diverse.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
Come confrontare le date in VBA
Come calcolare i giorni tra due date in VBA
Come convertire la stringa fino ad oggi in VBA