Seite 1 von 1

[nicht möglich]Mehrdimensionales Array dynamisch zuweisen

Verfasst: Fr, 19.05.2006 12:57
von surfhai
Hallo,

Ich möchte ein Mehrdimensionales Array dynamisch zuweisen. Aber das funktioniert nicht so richtig.

Code: Alles auswählen

Dim aNichtGefunden(1, 2) As String
ReDim Preserve aNichtGefunden(i5, 2) As String
aNichtGefunden(i5, 1) = AuswertungNamen(i)
aNichtGefunden(i5, 2) = oListBox1.SelectedItems(i3)
Gruß Thorsten

Verfasst: Fr, 19.05.2006 13:20
von Mihilist
Was funktioniert denn nicht?

Außer dass er vermutlich meint, dass er außerhalb des gültigen Bereichs liegt, wenn du Dim bis i5 machst und dann i5 zuweist - ich glaube er zählt bei 0 los, also geht ein n-dimensionales Array von 0 bis n-1 (oder kurz: dim a(5) => a(5) außerhalb des gültigen bereichs)

Das gleiche Problem dürfte aber auch mit der 2 im zweiten Argument passieren ;)

Verfasst: Fr, 19.05.2006 13:32
von surfhai
Das Array speichert nur 1 Index, das heißt den zuletzt zugewiesenen. Also ist etwas mit der Initialisierung nicht in Ordnung. Aber bei der ersten Dim Anweisung kann ich den Wert nicht offen lassen

Code: Alles auswählen

Dim aNichtGefunden(, 2) As String
weil ich dann einen fehler bekomme "Unerwartetes Symbol ,".

Oder ist es unmöglich ein 2 Dimensionales dynamisch zugewiesenes Array zu erstellen?

PS: Das Beispiel oben sind nur meine Code-Fragmente die Teilweise aus einer For-Schleife stammen, der wert i5 stimmt schon.

Gruß Thorsten

Verfasst: Fr, 19.05.2006 13:47
von Mihilist
surfhai hat geschrieben:Das Array speichert nur 1 Index, das heißt den zuletzt zugewiesenen.
Also das einzige, was mir noch einfallen würde ist, dass das Redim sich nur auf die Aktuelle Sub/Function auswirkt. sobald die beendet ist wird das Array (glaube ich) wieder auf die ursprüngliche Größe gesetzt.

Ansonsten bin ich leider auch schon mit meinem Wissen am Ende, fürchte ich.

Verfasst: Fr, 19.05.2006 13:59
von surfhai
Ich hab alles im Selben Sub stehen.

Ich hab schon bei Excel VBA geschaut, und dort kann man nur die 2. Dimension neu dimensionieren.

Also muss ich es mit 2 seperaten Arrays machen die beide den selben Index aufweisen.

Gruß Thorsten

Verfasst: Fr, 19.05.2006 15:08
von Mihilist
Na wenn es möglich ist einen zu verändern, und du nur einen, aber den falschen ändern willst, dann dreh die Indizes doch um *g*