wie kann ich in VBA ein STRING in DATE Format umwandeln?
zum Beispiel: "7 Juni 2007" in normales Datum 07.06.2007.
Ich freue mich über jede Hilfe!
Danke!
Anja
Sub anja()
Const STRDAT As String = "7 Juni 2007"
Dim strAsDate As Date
strAsDate = DateValue(STRDAT)
MsgBox strAsDate
End Sub
Grüße Boris
A | B | C | |
2 | 10.11.2007 | 10.11.2007 | |
3 | 12.12.2007 | ||
4 | 21.12.2007 |
Formeln der Tabelle | ||||
|
Option Explicit
Public Sub Text_Datum()
Dim rngZelle As Range
For Each rngZelle In Selection.Cells
With rngZelle
If IsNumeric(.Text) Then
.Value = CDate(.Text)
End If
End With
Next rngZelle
End Sub
Servus
Um einen String in ein Date-Format in Excel VBA umzuwandeln, kannst Du die Funktion CDate
oder DateValue
verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
Öffne den VBA-Editor: Drücke ALT + F11
.
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "Modul".
Gib den folgenden Code ein:
Option Explicit
Sub StringInDatumUmwandeln()
Dim strDatum As String
Dim convertedDate As Date
strDatum = "7 Juni 2007" ' Der String, den Du umwandeln möchtest
convertedDate = DateValue(strDatum) ' Umwandlung
MsgBox "Das umgewandelte Datum ist: " & Format(convertedDate, "dd.mm.yyyy")
End Sub
Führe das Makro aus: Drücke F5
, um das Makro auszuführen und das umgewandelte Datum anzuzeigen.
Problem: Das Datum wird nicht korrekt umgewandelt.
Problem: CDate
funktioniert nicht wie erwartet.
Neben der Verwendung von CDate
und DateValue
kannst Du auch andere Ansätze ausprobieren:
Direkte Umwandlung in Excel: Wenn Du einen String in einer Zelle hast, kannst Du in einer anderen Zelle einfach =A1*1
verwenden, um den Text in ein Datum zu konvertieren, wobei A1
die Zelle mit dem String ist.
Verwendung von VBA zur Formatierung: Wenn Du das Datum in einem bestimmten Format benötigst, kannst Du die Funktion Format
verwenden, um das Datum anzuzeigen:
MsgBox Format(convertedDate, "dd.mm.yyyy")
Hier sind einige praktische Beispiele für die Umwandlung von Strings in Datumsformate in VBA:
Beispiel für die Umwandlung eines Strings:
Dim strDatum As String
strDatum = "15 August 2021"
MsgBox CDate(strDatum) ' Gibt 15.08.2021 aus
Beispiel für die Umwandlung mehrerer Zellen:
Sub MehrereDatumsUmwandlungen()
Dim rngZelle As Range
For Each rngZelle In Selection.Cells
If IsNumeric(rngZelle.Value) Then
rngZelle.Value = CDate(rngZelle.Value)
End If
Next rngZelle
End Sub
Fehlerbehandlung: Füge Fehlerbehandlungslogik hinzu, um sicherzustellen, dass Dein Code robust ist. Verwende On Error Resume Next
, um Laufzeitfehler zu ignorieren.
Datumsformate anpassen: Nutze Format
in VBA, um das Datum nach Deinen Bedürfnissen zu formatieren, z. B. Format(Date, "dd-mm-yyyy")
.
Kommentare: Kommentiere Deinen Code, um die Verständlichkeit zu erhöhen, insbesondere wenn Du komplexe Umwandlungen durchführst.
1. Wie kann ich ein Datum wieder in einen String umwandeln?
Du kannst die Funktion Format
verwenden, um ein Datum in einen String zu formatieren, z. B.:
Dim myDate As Date
myDate = Date
MsgBox Format(myDate, "dd.mm.yyyy") ' Gibt das Datum als String aus
2. Funktioniert das auch mit anderen Datumsformaten?
Ja, Du kannst CDate
oder DateValue
mit verschiedenen Datumsformaten verwenden, solange der String ein gültiges Datum darstellt. Achte darauf, dass das Format mit den regionalen Einstellungen Deines Excel übereinstimmt.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen