2016-05-05 21 views
0

Ich versuche, den Zeitunterschied zwischen zwei separaten Inhaltssteuerelementen für Datumsauswahl in Word-VBA zu ermitteln. Das Ergebnis wird in einer einfachen Textinhaltssteuerung angezeigt. Ich bin momentan in der Lage, ein Ergebnis zu produzieren, aber es ist schwierig, den Zeitunterschied im Format "h: mm: ss" zu erzeugen. Jede Hilfe wird geschätztBerechnen Sie den Zeitunterschied für die Inhaltssteuerung des Datumswählers

+1

Bitte zeigen Sie Ihren bestehenden Code. –

Antwort

0

Da VBA keine integrierte Funktion zum Formatieren einer Zeitspanne hat, müssen Sie die einzelnen Komponenten wie Tage, Stunden, Minuten, Sekunden selbst berechnen, z. Verwenden Sie die folgende Funktion:

Public Function FormattedDateDiff(date1 As ContentControl, date2 As ContentControl) As String 

    Dim dateDiffInSeconds As Long 
    Dim dd As Long 
    Dim hh As Integer 
    Dim mm As Integer 
    Dim ss As Integer 
    Dim ss_remaining As Long 

    dateDiffInSeconds = Abs(dateDiff("s", date1.Range.Text, date2.Range.Text)) 

    dd = dateDiffInSeconds \ 86400 
    ss_remaining = dateDiffInSeconds Mod 86400 

    hh = ss_remaining \ 3600 
    ss_remaining = ss_remaining Mod 3600 

    mm = ss_remaining \ 60 
    ss = ss_remaining Mod 60 

    If dd > 0 Then 
     FormattedDateDiff = dd & " days, " 
    End If 

    FormattedDateDiff = FormattedDateDiff & TimeSerial(hh, mm, ss_remaining) 

End Function 
Verwandte Themen