String zerlegen

Hallo zusammen,
ansich dachte ich es wäre eine Kleinigkeit, aber ich bekomme es trotzdem nicht hin.

Ich will ein Datum „22.03.2007“ umformatieren und zwar in „20070322“.

Dazu wollte ich mit der Funktion Mid den Datumsstring erstmal in Tag, Monat und Jahr zerlegen.

Dim datum As String
Dim meinTag As String
Dim meinMonat As String
Dim meinJahr As String

datum = Str(Date)
meinTag = Mid("22.03.2007", 0, 2)

MsgBox (meinTag)

Bekomme folgende Fehlermeldung „Laufzeitfehler ‚5‘ Ungültiger Prozeduraufruf oder ungültiges Argument“.

Ich hoffe jemand kann mir da weiterhelfen.
Grüße
Thomas

Hallo,

ansich dachte ich es wäre eine Kleinigkeit, aber ich bekomme
es trotzdem nicht hin.

Ich will ein Datum „22.03.2007“ umformatieren und zwar in
„20070322“.

ja, eine Kleinigkeit …

Dazu wollte ich mit der Funktion Mid den Datumsstring erstmal
in Tag, Monat und Jahr zerlegen.

Dim datum As String
Dim meinTag As String
Dim meinMonat As String
Dim meinJahr As String

datum = Str(Date)
meinTag = Mid("22.03.2007", **<u>0</u>** , 2)

MsgBox (meinTag)

und Du hast auch fast alles richtig gemacht. Nur beginnt ein String mit dem Zeichen 1, nicht 0. An der Stelle beginnt VB mal mit 1 zu zählen.

Mit …

meinTag = Mid("22.03.2007", **<u>1</u>** , 2)

… wird das funktionieren.

Ich hätte das aber trotzdem so geschrieben:

Option Explicit

Private Sub Command1\_Click()
 Dim Datum As String
 Dim Dt() As String
 Datum = "22.03.2007"
 Dt = Split(Datum, ".")
 Datum = Dt(2) + Dt(1) + Dt(0)
 Me.Caption = Datum
End Sub

Das macht nichts anderes, aber mir gefällt es besser. :smile: Reine Geschmackssache, wenn es aber mal mehr wird, kann man dann mit Schleifen arbeiten und bekommt einen kürzeren Code und höhere Geschwindigkeit.

Gruß, Rainer

Hallo, Thomas!

Ich will ein Datum „22.03.2007“ umformatieren und zwar in
„20070322“.

Ein Datum oder einen String, der ein Datum sein könnte?

Ein Datum wäre z. B. mit Format$(Date, „yyyymmdd“) entsprechend gewandelt. Und dabei müsstest Du dich noch nicht einmal darum kümmern, nach welchen lokalen Einstellungen Dein Datum wie mit Str() in einen String gewandelt wird. (Setze einfach mal in der Systemsteuerung Dein „kurzes Datumsformat“ auf TT.MM.JJ, und Str(Date) gibt „22.03.07“ aus.)

Weitere hilfreiche Funktionen diesbezüglich: Day(datum) liefert den Tag, Month und Year das Jahr. Formatierung dann am besten mit Format$.

Gruß, Manfred

Hallo Manfred,

klar, Du hast Recht! Code dazu:

Option Explicit

Private Sub Command1\_Click()
 Dim Datum As Date
 Datum = "22.03.2007"
 Me.Caption = Format(Datum, "YYYYMMDD")
End Sub

Gruß, Rainer

Danke für die beiden Antworten.
Kann es im Moment leider noch nicht testen, aber eine eurer Antworten wird bestimmt funktionieren :smile:

Nochmals vielen Dank.
Grüße
Thomas