DateDiff-Beschreibung
Gibt die Differenz zwischen zwei Datumswerten basierend auf dem angegebenen Intervall zurück.
Einfache DateDiff-Beispiele
Hier ist ein einfaches DateDiff-Beispiel:
123 | Sub DateDiff_Year()MsgBox DateDiff("yyyy", #1/1/2019#, #8/1/2021#)End Sub |
Dieser Code gibt 2 zurück. Dies ist die Jahresdifferenz (angezeigt durch „yyyy“) zwischen 2 Tagen. (2021 - 2022 = 2)
Im obigen Beispiel ändern Sie die Positionen von date1 und date2.
123 | Sub DateDiff_Year()MsgBox DateDiff("yyyy", #8/1/2021#, #1/1/2019#)End Sub |
Dieser Code gibt -2 zurück.
DateDiff-Syntax
Im VBA-Editor können Sie „DateDiff(“ eingeben, um die Syntax für die DateDiff-Funktion anzuzeigen:
Die DateDiff-Funktion enthält 5 Argumente:
Intervall: Zeiteinheit (Tage, Monate, Jahre usw.). Geben Sie als Zeichenfolge ein. (z. B. „m“ für Monat)
Einstellung | Beschreibung |
---|---|
yyyy | Jahr |
Q | Quartal |
m | Monat |
ja | Tag des Jahres |
D | Tag |
w | Wochentag |
ww | Woche |
h | Stunde |
n | Minute |
S | Sekunde |
Datum1, Datum2: Zwei Daten, die Sie in der Berechnung verwenden möchten.
Erster Tag der Woche: Eine Konstante, die den ersten Tag der Woche angibt. Dies ist optional. Wenn nicht angegeben, wird Sonntag angenommen.
Konstante | Wert | Beschreibung |
---|---|---|
vbUseSystem | 0 | Verwenden Sie die NLS-API-Einstellung. |
vbSonntag | 1 | Sonntag (Standard) |
vbMontag | 2 | Montag |
vbDienstag | 3 | Dienstag |
vbMittwoch | 4 | Mittwoch |
vbDonnerstag | 5 | Donnerstag |
vbFreitag | 6 | Freitag |
vbSamstag | 7 | Samstag |
ErsteWoche des Jahres: Eine Konstante, die die erste Woche des Jahres angibt. Dies ist optional. Wenn nicht angegeben, wird als erste Woche die Woche angenommen, in der der 1. Januar auftritt.
Konstante | Wert | Beschreibung |
---|---|---|
vbUseSystem | 0 | Verwenden Sie die NLS-API-Einstellung. |
vbFirstJan1 | 1 | Beginnen Sie mit der Woche, in der der 1. Januar auftritt (Standard). |
vbFirstFourDays | 2 | Beginnen Sie mit der ersten Woche, die mindestens vier Tage im neuen Jahr hat. |
vbErsteVollwoche | 3 | Beginnen Sie mit der ersten vollen Woche des Jahres. |
VBA-Programmierung | Code Generator arbeitet für Sie!
Beispiele für Excel VBA DateDiff-Funktion
Referenzdaten
Zu Beginn werden wir verschiedene Möglichkeiten zum Referenzieren von Datumsangaben mithilfe der VBA DateDiff-Funktion demonstrieren.
Jede dieser DateDiff-Funktionen liefert das gleiche Ergebnis:
123456789 | Sub DateDiff_ReferenceDates()MsgBox DateDiff("m", #4/1/2019#, #8/1/2021#)MsgBox DateDiff("m", DateSerial(2019, 4, 1), DateSerial(2021, 8, 1))MsgBox DateDiff("m", DateValue("1. April 2022"), DateValue("1. August 2022"))End Sub |
Oder Sie können auf Zellen verweisen, die Datumsangaben enthalten:
12345 | Sub DateDiff_ReferenceDates_Cell()MsgBox DateDiff("m", Range("C2").Value, Range("C3").Value)End Sub |
Oder erstellen und referenzieren Sie Datumsvariablen:
123456789 | Sub DateDiff_Variable()Dim dt1 als Datum, dt2 als Datumdt1 = #4/1/2019#dt2 = #8/1/2021#MsgBox DateDiff("m", dt1, dt2)End Sub |
Sind Sie es leid, nach VBA-Codebeispielen zu suchen? Probieren Sie AutoMacro aus!
Verwenden verschiedener Intervalleinheiten
Viertel
123 | Sub DateDiff_Quarter()MsgBox "die Anzahl der Quartale: " & DateDiff("q", #1/1/2019#, #1/1/2021#)End Sub |
Monate
123 | Sub DateDiff_Month()MsgBox "die Anzahl der Monate: " & DateDiff("m", #1/1/2019#, #1/1/2021#)End Sub |
Tage
123 | Sub DateDiff_Day()MsgBox "die Anzahl der Tage: " & DateDiff("d", #1/1/2019#, #1/1/2021#)End Sub |
Wochen
123 | Sub DateDiff_Week()MsgBox "die Anzahl der Wochen: " & DateDiff("w", #1/1/2019#, #1/1/2021#)End Sub |
Std
123456789101112 | Sub DateDiff_Hour()Dim dt1 als Datumdt2 als Datum dimmenDim nDiff As Longdt1 = 14.08.2019 9:30:00 #dt2 = 14.08.2019 13:00:00#nDiff = DateDiff("h", dt1, dt2)MsgBox "Stunden: " & nDiffEnd Sub |
Protokoll
123 | Sub DateDiff_Minute()MsgBox "mins: " & DateDiff("n", #8/14/2019 9:30:00#, #8/14/2019 9:35:00#)End Sub |
Sekunden
123 | Sub DateDiff_Second()MsgBox "secs: " & DateDiff("s", #8/14/2019 9:30:10 AM#, #8/14/2019 9:30:22#)End Sub |