VBA – Das heutige Datum ermitteln (Aktuelles Datum)
In diesem Tutorial zeigen wir Ihnen, wie Sie das heutige Datum in VBA ermitteln können.
Es gibt einige Möglichkeiten, das heutige Datum in VBA-Code zu ermitteln, nämlich mit den VBA-Funktionen Date() oder Now().
Die Funktion Date()
Die Funktion Date() gibt das heutige Datum zurück. Im folgenden Beispiel weisen wir das heutige Datum einer Variablen zu und zeigen es dann im Direktfenster des VBE-Editors an.
Dim dtHeute as Date
dtHeute = Date()
Debug.Print dtHeute
Alternativ können wir das Datum auch in einer Meldungsbox anzeigen.
Sub TestDatum
Dim dtHeute as Date
dtHeute = Date()
Msgbox "Das heutige Datum ist " & dtHeute
End Sub
Die Funktion Now()
Die Funktion Now() funktioniert auf die gleiche Weise wie die Datumsfunktion, schließt aber die Uhrzeit mit ein.
Sub TestDatum()
Dim dtHeute As Date
dtHeute = Now()
MsgBox "Heutiges Datum ist " & dtHeute
End Sub
Datumsangaben mit VBA formatieren
In den beiden Funktion Date() und Now() wird das Datum in einem Standardstil, der von den Einstellungen auf unserem PC bestimmt wird, formatiert. Wir können diese Formatierung mit der VBA-Funktion Format anpassen. Da die Format-Funktion eine Zeichenkette zurückgibt, müssen wir eine STRING-Variable und keine DATE-Variable deklarieren.
Sub TestDatum()
Dim dtHeute As String
dtHeute = Format (Date, "dd mmmm yyyy")
MsgBox "Das heutige Datum ist " & dtHeute
End Sub
Wir können die Funktion Now() auch so formatieren, dass sie den Zeitanteil in einem benutzerdefinierten Format einschließt.
Sub FormatJetzt()
Dim dtHeute As String
dtHeute = Format(Now(), "dd mmmm yy hh:mm:ss am/pm")
MsgBox dtHeute
End Sub
Vergleich von 2 Datumsangaben mit VBA
Wir können die Date-Funktion auch verwenden, um das heutige Datum mit einem anderen Datum zu vergleichen, z. B. um zu berechnen, wie viele Tage es noch bis zu einem Ereignis sind! Dazu können wir die VBA-Funktion DateDiff(), die eine Zahl zurückgibt, verwenden. Daher können wir eine INTEGER-Variable deklarieren, in der wir den zurückgegebenen Wert speichern.
Sub TestDatumsDifferenz()
Dim dtHeute As Date
Dim dtIrgendwann As Date
Dim iTage As Integer
dtHeute = Date
dtIrgendwann = "05/06/2021"
iTage = DateDiff("d", dtHeute, dtIrgendwann)
MsgBox "Es liegen " & iTage & " Tage zwischen den 2 Datumsangaben"
End Sub
Da Datumsangaben als Zahlen gespeichert werden, könnten wir auch das zweite Datum vom ersten abziehen, um die gleiche Antwort zu erhalten.
iTage = dtHeute - dtIrgendwann