VBA CDate Funktion – String in Datum umwandeln
In diesem kurzen Tutorial zeigen wir Ihnen, wie Sie in VBA eine Zeichenfolge in ein Datum umwandeln können.
Datumsangaben werden in Excel als Zahlen gespeichert und dann so formatiert, dass sie als Datum angezeigt werden. Tag 1 in der Welt von Excel war der 1. Januar 1900 (Windows-Standard) oder der 1. Januar 1904 (Macintosh-Standard). Das bedeutet, dass der 5. August 2021 der Tag 44413 seit dem 1. Januar 1900 ist. Um in Excel eine Zeichenkette in ein Datum umzuwandeln, müssen wir sie zunächst in eine Zahl umwandeln und diese Zahl dann in ein Datum.
Die CDate-Funktion
Wir können eine Funktion namens CDate in VBA verwenden, um eine Zeichenkette in ein Datum umzuwandeln.
Sub DatumUmwandeln()
Dim dte As Single
Dim strD As String
strD = "05/10/2020"
dte = CDate(strD)
MsgBox dte
End Sub
Da wir eine numerische Variable deklariert haben (dte als Single), wird die Meldungsbox die Zahl, die sich auf das eingegebene Datum bezieht, zurückgeben.
Es ist wichtig, dass die Jahreszahl mit allen 4 Ziffern eingegeben wird (d. h. 2020 und nicht nur 20), da sonst die zurückgegebene Zahl möglicherweise den Erwartungen nicht entspricht. Excel interpretiert die Jahreszahl des Datums nicht. Dies wird über die Systemsteuerung unseres PCs gesteuert.
Wenn wir die Variablen jedoch als Datumsvariable deklarieren, gibt die Meldungsbox die in ein Datum umgewandelte Zahl zurück.
Sub DatumUmwandeln()
Dim dte As Date
Dim strD As String
strD = "05/10/2020"
dte = CDate(strD)
MsgBox dte
End Sub
Wir können noch einen Schritt weiter gehen und das Datum so formatieren, wie wir es gerne sehen möchten.
Sub DatumUmwandeln()
Dim dte As String
Dim strD As String
strD = "05/10/2020"
dte = Format(CDate(strD), "dd mmmm yyyy")
MsgBox dte
End Sub
In diesem Beispiel konvertieren wir die Zeichenfolge in ein Datum und dann wieder zurück in eine Zeichenfolge!
Wenn wir das Jahr ganz weglassen, nimmt Excel das aktuelle Jahr an.