yyyymmdd in dd.mm.jjjj umwandeln mit VBA
Schritt-für-Schritt-Anleitung
Um das Datum im Format yyyymmdd (z.B. 20190709) in dd.mm.jjjj (z.B. 09.07.2019) umzuformatieren, kannst Du den folgenden VBA-Code verwenden:
Dim DatumText As String
Dim DatumNeu As Date
DatumText = "20190709"
DatumNeu = DateSerial(Left(DatumText, 4), Mid(DatumText, 5, 2), Right(DatumText, 2))
Debug.Print Format(DatumNeu, "dd.mm.yyyy")
In diesem Beispiel wird DateSerial
verwendet, um das Datum zu erstellen. Danach kannst Du mit Format
das Datum in das gewünschte Format umwandeln.
Häufige Fehler und Lösungen
-
Laufzeitfehler beim CDate: Wenn Du versuchst, einen String wie "20190709" direkt in ein Datum umzuwandeln, kann das zu einem Laufzeitfehler führen. Stelle sicher, dass Du den String vorher ins richtige Datumsformat umwandelst.
-
Falsches Datumsformat: Wenn Du das Datumsformat nicht korrekt angibst, wie z.B. Format(DatumNeu, "yyyyddmm")
, wird das Datum nicht wie gewünscht ausgegeben. Achte darauf, die richtige Reihenfolge zu verwenden: Format(DatumNeu, "dd.mm.yyyy")
.
Alternative Methoden
Du kannst auch die CDate
-Funktion verwenden, um das Datum zu formatieren. Hier ist ein Beispiel:
folgeTag = CDate(Format(20190709, "0000-00-00")) + 1
Debug.Print Format(folgeTag, "dd.mm.yyyy")
Diese Methode ist besonders nützlich, wenn Du mit Datumswerten arbeiten möchtest, die in einem anderen Format vorliegen.
Praktische Beispiele
Hier sind einige praktische Beispiele, um das Datum in verschiedenen Formaten zu konvertieren:
- Von yyyymmdd zu dd.mm.jjjj:
Dim DatumText As String
DatumText = "20190709"
Debug.Print Format(CDate(Format(DatumText, "0000-00-00")), "dd.mm.yyyy")
- Von yyyymmdd zu jjjjmmtt:
Debug.Print Format(CDate(Format(DatumText, "0000-00-00")), "yyyymmdd")
Diese Beispiele zeigen, wie Du VBA verwenden kannst, um Daten in das gewünschte Format zu bringen.
Tipps für Profis
- Nutze
CLng
um sicherzustellen, dass die Ergebnisse als Zahlen gespeichert werden, wenn Du das Datum als Zahl benötigst: CLng(Format(DatumNeu, "yyyymmdd"))
.
- Achte darauf, dass die Datumswerte in der richtigen Zeitzone sind, um Fehler bei der Berechnung zu vermeiden.
- Verwende
DateAdd
, wenn Du mehrere Tage zu einem Datum hinzufügen möchtest: DateAdd("d", 1, DatumNeu)
.
FAQ: Häufige Fragen
1. Wie kann ich das Datum in ein anderes Format ändern?
Du kannst das Datumsformat einfach im Format
-Befehl anpassen, z.B. Format(DatumNeu, "mm.dd.yyyy")
.
2. Was ist der Unterschied zwischen CDate und DateSerial?
CDate
wandelt einen String in ein Datumsformat um, während DateSerial
ein Datum aus Jahr, Monat und Tag erstellt. Verwende DateSerial
, wenn Du bereits die einzelnen Komponenten hast.
3. Wie kann ich das Datum in Access VBA formatieren?
Die Methoden sind ähnlich, aber Du solltest Format(Datum, "mm/dd/yyyy")
verwenden, um das Datumsformat in Access anzupassen.