In diesem kurzen Tutorial wird gezeigt, wie Sie in VBA einen String in ein Datum konvertieren.
Datumsangaben in Excel werden 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) - was bedeutet, dass der 5. August 2022 seit dem 1. Januar 1900 Tag 44413 ist. So konvertieren Sie eine Zeichenfolge in ein Datum in Excel , müssen wir zuerst die Zeichenfolge in eine Zahl umwandeln und dann diese Zahl in das Datum umwandeln.
CDate-Funktion
Wir können eine Funktion namens CDate in VBA verwenden, um eine Zeichenfolge in ein Datum zu konvertieren.
1234567 | Sub ConvertDate()Dim tee als SingleDim strD als StringstrD = "05/10/2020"dte = CDate(strD)MsgBox dteEnd Sub |
Da wir eine numerische Variable (dte als Single) deklariert haben, gibt die msgbox die Zahl zurück, die sich auf das eingegebene Datum bezieht.
Es ist wichtig, dass wir das Jahr mit allen 4 Jahresziffern eingeben (dh 2022 und nicht nur 20), da sonst die zurückgegebene Zahl möglicherweise nicht wie erwartet ausfällt. Excel interpretiert den Jahresteil des Datums nicht - dies wird von der Systemsteuerung unseres PCs gesteuert.
Wenn wir die Variablen jedoch als Datumsvariable deklarieren, gibt das Meldungsfeld die in ein Datum konvertierte Zahl zurück.
1234567 | Sub ConvertDate()Dim dte als DatumDim strD als StringstrD = "05/10/2020"dte = CDate(strD)MsgBox dteEnd Sub |
Wir können noch einen Schritt weitergehen und das Datum auf den gewünschten Datumsformattyp formatieren.
1234567 | Sub ConvertDate()Dim dte As StringDim strD als StringstrD = "05/10/2020"dte = Format(CDate(strD), "dd mmmm yyyy")MsgBox dteEnd Sub |
In diesem Beispiel konvertieren wir die Zeichenfolge in ein Datum und dann wieder zurück in eine Zeichenfolge!
Wenn wir das Jahr komplett weglassen, geht Excel vom aktuellen Jahr aus.