Ich habe Daten in einer Excel-Tabelle in folgendem Format:VBA Konvertieren String Datum
ItemCode DeliveryDate 5456987 24.01.2009 5456988 5456989 12.24.2009 5456990 12/24/2009
I die Werte von DeliveryDate in einem Array gespeichert ist. Ich muss über die Grundlagen des Datums entscheiden und dann das Ergebnis in einem neuen Blatt drucken. Also muss ich die Werte in ein Array konvertieren:
Dim current as Date, highest as Date, result() as Date
For Each itemDate in DeliveryDateArray
current = CDate(itemDate)
if current > highest then
highest = current
end if
' some more operations an put dates into result array
Next itemDate
'After activating final sheet...
Range("A1").Resize(UBound(result), 1).Value = Application.Transpose(result)
Leider CDate() Funktion führt der Fehler:
Run-time error '13':
Type mismatch
Gibt es eine Funktion in VBA, wo:
- Parse Zeichenkette mit beliebiges Datumsformat und gibt ein Datumobjekt zurück, mit dem zu arbeiten ist.
- Rückgabe eines leeren Datumsobjekts, wenn die Zeichenfolge leer oder fehlerhaft ist (zum Vergleich in der Schleife).
Edit:
den Fehler zu reproduzieren, einfach laufen myDate = CDate("24.01.2009")
nach [http://www.example-code.com /vb/stringtodate.asp] Du hast es richtig gemacht ... Wo ist der Fehler? Auf welcher Zeile - die erste oder die zweite Zeile (leere Zeichenfolge)? Haben Sie versucht, das Zeichenfolgenformat zu ändern? Möglicherweise möchten Sie das Format ändern, in dem Sie Ihre Datumszeichenfolgen analysieren. "24.01.2009" darf nicht erkannt werden aber "24.12.2009" darf - versuchen Sie nur den 12/24/2009 zu konvertieren und sehen Sie, ob es funktioniert. Wenn es funktioniert, kann das Format vom 24.01.2009 inakzeptabel sein. –
Versuchen Sie, den 24.12.2009 zu konvertieren, um zu sehen, ob es funktioniert. Wenn es funktioniert, könnte das Format dd.MM.yyyy für CDate nicht verfügbar sein. Es gibt möglicherweise eine Möglichkeit für Sie, anzugeben, wie es formatiert ist, damit es es genau so parsen kann, wie Sie es wollen. Wenn das Format dd.MM.yyyy das Problem verursacht, ändern Sie zuerst das Format, indem Sie das "." mit einem "/" und versuchen Sie es erneut zu konvertieren. Oder formatiere es so, dass es MM/TT/JJJJ wird und konvertiere es dann. Ich denke, ich möchte nur wissen, ob "24.12.2009" Fehler ausgibt oder nicht. Überprüfe zuerst und lass es mich wissen. –
@AnnB., Nun meine erste Frage ist; Gibt es eine VBA-Funktion, die Zeichenfolge mit * beliebigem * Datumsformat analysieren und ein Datumsobjekt zurückgeben kann, um damit zu arbeiten? –