DatumBeschreibung hinzufügen
Die VBA DateAdd-Funktion ermöglicht es Ihnen, Tage, Monate, Jahre, Stunden, Quartale usw. zu Datums- oder Uhrzeitangaben hinzuzufügen (oder zu subtrahieren).
Einfache DateAdd-Beispiele
Hier ist ein einfaches DateAdd-Beispiel:
123 | Sub DateAdd_Day()MsgBox DateAdd("d", 20, #4/1/2021#)End Sub |
Dieser Code fügt dem Datum 01.04.2021 20 Tage (gekennzeichnet durch „d“) hinzu:
Stattdessen können wir das Intervall-Argument von „d“ in „m“ ändern, um dem Datum 01.04.2021 20 Monate hinzuzufügen:
123 | UnterdatumAdd_Month()MsgBox DateAdd("m", 20, #4/1/2021#)End Sub |
Anstatt das Datum in einer Messagebox anzuzeigen, können wir es einer Variablen zuweisen:
123456 | Sub DateAdd_Day2()Dim dt als Datumdt = DateAdd("d", 20, #4/1/2021#)MsgBox dtEnd Sub |
DateAdd-Syntax
Im VBA-Editor können Sie „DateAdd(“ eingeben, um die Syntax für die DateAdd-Funktion anzuzeigen:
Die DateAdd-Funktion enthält 3 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 |
Nummer: Numerischer Wert, der die Anzahl der hinzuzufügenden Zeiteinheiten darstellt. (z. B. 20, um 20 Einheiten hinzuzufügen)
Datum: Anfangsdatum. Siehe nächster Abschnitt.
VBA-Programmierung | Code Generator arbeitet für Sie!
Beispiele für Excel VBA DateAdd-Funktion
Referenzdaten
Zu Beginn zeigen wir verschiedene Möglichkeiten zum Referenzieren von Datumsangaben mithilfe der VBA DateAdd-Funktion.
Jede dieser DateAdd-Funktionen liefert das gleiche Ergebnis:
123456789 | UnterdatumAdd_ReferenceDates()MsgBox DateAdd("m", 2, #4/1/2021#)MsgBox DateAdd("m", 2, DateSerial(2021, 4, 1))MsgBox DateAdd("m", 2, DateValue("1. April 2022"))End Sub |
Oder Sie können auf eine Zelle verweisen, die ein Datum enthält:
12345 | UnterdatumAdd_ReferenceDates_Cell()MsgBox DateAdd("m", 2, Range("C2").Value)End Sub |
Oder erstellen und verweisen Sie auf eine Datumsvariable:
12345678 | UnterdatumAdd_Variable()Dim dt als Datumdt = #4/1/2021#MsgBox DateAdd("m", 2, dt)End Sub |
Addieren oder Subtrahieren von Daten
Wie Sie ein Datum ergänzen, haben wir Ihnen bereits gezeigt:
123456 | Sub DateAdd_Day2()Dim dt als Datumdt = DateAdd("d", 20, #4/1/2021#)MsgBox dtEnd Sub |
Sie können von Daten subtrahieren, indem Sie eine negative Zahl verwenden (z. B. -20 statt 20):
123456 | Sub DateAdd_Day()Dim dt als Datumdt = DateAdd("d", -20, #4/1/2021#)MsgBox dtEnd Sub |
Sind Sie es leid, nach VBA-Codebeispielen zu suchen? Probieren Sie AutoMacro aus!
Hinzufügen verschiedener Zeiteinheiten
Jahre
123 | Sub DateAdd_Years()MsgBox DateAdd("yyyy", 4, #4/1/2021#)End Sub |
Quartal
123 | Sub DateAdd_Quarters()MsgBox DateAdd("q", 2, #4/1/2021#)End Sub |
Monat
123 | UnterdatumAdd_Months()MsgBox DateAdd("m", 2, #4/1/2021#)End Sub |
Tag des Jahres
123 | Sub DateAdd_DaysofYear()MsgBox DateAdd("y", 2, #4/1/2021#)End Sub |
Tag
123 | Sub DateAdd_Days3()MsgBox DateAdd("d", 2, #4/1/2021#)End Sub |
Wochentag
123 | Sub DateAdd_Weekdays()MsgBox DateAdd("w", 2, #4/1/2021#)End Sub |
Woche
123 | Sub DateAdd_Weeks()MsgBox DateAdd("ww", 2, #4/1/2021#)End Sub |
VBA-Programmierung | Code Generator arbeitet für Sie!
Zu Heute hinzufügen
In diesen Beispielen werden dem heutigen Tag mithilfe der Datumsfunktion Zeiteinheiten hinzugefügt.
123456789 | Sub DateAdd_Year_Test()Dim dtHeute als DatumDim dtSpäter als DatumdtHeute = DatumdtLater = DateAdd("yyyy", 1, dtToday)MsgBox "Ein Jahr später ist" & dtLaterEnd Sub |
123 | Sub DateAdd_Quarter_Test()MsgBox "2 Quartale später ist " & DateAdd("q", 2, Date)End Sub |
Addieren und Subtrahieren von Zeit
Die DateAdd-Funktion funktioniert auch mit Times. Hier sind einige Beispiele für das Addieren (oder Subtrahieren) von Zeit zu einer Zeit:
Stunde
In diesem Beispiel werden einer Zeit 2 Stunden hinzugefügt:
123 | Sub DateAdd_Hour()MsgBox DateAdd("h", 2, #4/1/2021 6:00:00#)End Sub |
Minute
In diesem Beispiel werden 120 Minuten von der aktuellen Zeit abgezogen:
123 | Sub DateAdd_Minute_Subtract()MsgBox DateAdd("n", -120, Jetzt)End Sub |
Sekunde
123 | Sub DateAdd_Second()MsgBox DateAdd("s", 2, #4/1/2021 6:00:00#)End Sub |
Datum formatieren
Wenn Datumsangaben (oder Uhrzeiten) in Excel, UserForms oder Messageboxen angezeigt werden, sollten Sie mithilfe der Formatfunktion angeben, wie die Datumsangaben angezeigt werden sollen. Wir haben ein paar Beispiele unten aufgeführt:
123456789101112131415161718 | Sub FormattingDatesTimes()'Gibt das aktuelle Datum und die aktuelle Uhrzeit zurückdt = Jetzt()'Ex. 07.02.2021Bereich("B2") = Format(dt, "mm/tt/jjjj")'Ex. 2. Juli 2022Range("B3") = Format(dt, "mmmm d, yyyy")'Ex. 2. Juli 2022 09:10Bereich("B4") = Format(dt, "mm/tt/jjjj hh:mm")'Ex. 7.2.21 9:10 UhrRange("B5") = Format(dt, "m.d.yy h:mm AM/PM")End Sub |