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:

VBA calcola la differenza oraria

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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *