String teilen in Excel-VBA?
Hallo,
ich habe gerade folgendes Problem:
Ich habe einen VBA-Makro gebastelt der bestimmte Daten aus einer Excel Tabelle in eine andere kopiert und formatiert. Soweit so gut. Nun habe ich aber einen String, welcher aus einem Datum und einer Uhrzeit besteht.
Ich benötige von diesem String jedoch nur das Datum und zwar im Format
YYYY-MM-DD.
Die Formatierung des Datums bekomme ich hin. Jedoch konnte ich Datum und Uhrzeit bisher noch nicht erfolgreich trennen.
Genutzt wird VBA.
Ich würde mich über Tipps und Anregungen Freuen :-)
2 Antworten
Du kannst die funktion "split" in VBA verwenden, um den string in ein array aufzuteilen Dann kannst du nur den ersten Teil des arrays (also das datum) verwenden und es in dass von dir gewünschte format umwandeln. Hier ist ein Beispielcode: ``` Dim datumuhrzeit As string Dim datumarray() As string Annahme: Der string befindet sich in der Variable "datumuhrzeit" datumarray = Split(datumuhrzeit, " ") datum ist jetzt der erste Teil des arrays Dim datum As Date datum = CDate(datumarray(0)) Dim datumformatiert As string datumformatiert = format(datum, "yyyy-mm-dd") datumformatiert enthält dass datum im gewünschten format ```
Vielen Dank für deine Antwort, Ich habe bereits seit 3h an dieser Split funktion gesessen und hatte schon exakt dasselbe da stehen wie du mir gerade geschrieben hast. Aber, ich intelligentes Wesen habe einfach von anfang an den falschen Wert importiert. Nämlich einen String der nur aus einem Wort besteht...Hätte ich also von Anfang an kontrolliert das ich den Richtigen Wert verwende wäre ich schon lange fertig gewesen :Facepalm: .
Naja Dummheit tut weh
Ich würde das einfach in ein Date-Objekt konvertieren und im gewünschten Format wieder ausgeben:
Function reformatDate(inputDate As String) As String
reformatDate = Format(CDate(inputDate), "YYYY-MM-DD")
End Function