Hallo Andreas,
deine Version funktioniert deshalb nicht, da du deinem Datenfeld
vom Typ Variant mit arrWerte(0,i)="04.01.2016" kein Datum sondern
einen String zuweist. Versuch es mal mit
arrWerte(0,i)=Cdate("04.01.2016")
Eine Variable oder eine Datenfeldposition vom Typ Variant nimmt
immer den Typ des ihm zuerst zugewiesenen Wertes an. Bei Nighty
wird mit der Zeile
arrWerte(1, 1) = Date diese Position durch
Zuweisung des aktuellen Datums quasi indirekt als Datum
formatiert womit die Suche dort erfolgreich verläuft.
Das Problem ist allerdings, dass das Array mehrdimensional
ist, wobei arrWerte(0,i) das Datumsformat ist und z:b. arrWerte(1,i)
eine string-Variable, arrWerte(2,i) double usw.
nur mal so ein kleiner Tipp am Rande: Wenn du in nur einem Array
mehrere Typen wie,
String, Date und Double unterbringen willst,
kann ein benutzerdefinierter Typ sinnvoll sein. Das kann dir die
weitere Bearbeitung etwas versüssen und du kannst sogar auf
CDate oder indirekte Typzuweisungen verzichten. Schau dir in
dem Zusammenhang mal die
Type Anweisung an.
Hier mal ein kleines Beispiel:
In einem Standardmodul (
und nur dort) schreibst du ganz
oben (also noch vor der ersten Sub):
Type MeinTyp
Text As String
Datum As Date
Zahl As Double
End Type
Die Namen der Variablen kannst du natürlich wie
immer frei wählen. Da Datum hier als Date formatiert ist sollte nun
auch eine Datumsangabe in Textform automatisch in ein Datum
umgewandelt werden.
Jetzt kannst du in jedem beliebigen Modul dein Array u.a. z. B. wie
folgt deklarieren:
Dim arrwerte(5) As MeinTyp
oder
Dim arrwerte() As MeinTyp
Redim arrwerte(5)
Damit kannst du dein Array wie ein Objekt behandeln, dessen
Eigenschaften du Werte zuweisen oder auslesen kannst. Die
Eigenschaften bilden somit die zweite Dimension, welche du nun
nicht mehr in der Klammer angeben musst.
arrwerte(1).Datum = "04.01.2005"
arrwerte(1).Text = "Hallo"
arrwerte(1).Zahl = 1
Gruß Mr. K.