VBA Umwandeln von string in date

ronnyk

Mitglied
Hallo!
Hab eine String-Variable und eine date-variable.
Wie kann ich unter VBA sagen das er die string_var in eine gültige datumsvariable speichert?


Code:
str_var = "20040615"  'Für 15.06.2004

Das Format der string-var beibt immer gleich.
 
Also wenn das Format immer gleich bleibt, kann ich Dir auf die Schnelle folgendes anbieten:

Code:
Dim date_var as Date
date_var = CDate(Right$(str_var, 2) & "." & Mid$(str_var, 5, 2) & "." & Left$(str_var, 4))

Ich wüsste nicht, dass es dafür eine Funktion gibt, da der Fall doch ziemlich speziell ist, aber ich kann mich auch irren. Wenn's jemand weiss, bitte posten.
 
Zuletzt bearbeitet:
Juhu

Vielen, vielen Dank!
Funktioniert wunderbar.

OK darf jetzt Feierabend machen!
:)
Also dann bis morgen vielleicht.!
 
Hallo ronnyk,

natürlich funktioniert das Beispiel, aber mit DateSerial wärst du dann
auch noch unabhängig von den Ländereinstellungen.

Falls nämlich bei der Verwendung des vorherigen Codes ein englisches
Windows laufen würde wäre ein Laufzeitfehler das Ergebnis.

date_var = DateSerial(Left$(str_var, 4), Mid$(str_var, 5, 2), Right$(str_var, 2))

Jens
 
@ JensG: Das finde ich sehr interessant. Kannst Du mir den Hintergrund nochmal ein bisschen ausführlicher erklären?

Danke
 
@Ein_Freund

Gerne.
Teste es doch mal und stelle bei dir in den Ländereinstellung auf
Englisch um.

Dann hast du als Datumsseperator keinen Punkt sonder "/".
Und ein CDate auf 15.06.2004 bringt dann einen Laufzeitfehler
13 Typen unverträglich.

Gruß
Jens
 
Hab's mal ausprobiert und nun auch vollständig verstanden.
Ist schon seltsam, ich programmiere VB seit einigen Jahren, aber so ein simples DateSerial ist mir noch nicht untergekommen.

Vielen Dank JensG,

bis dann...

EDIT: Nachtrag @ ronnyk: Mit diesem Wissen ist es dann wirklich sinnvoller, DateSerial zu verwenden. Man kann den Ausdruck dann ja immernoch in das gewünschte Format bringen...
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück