Subscript außerhalb des Bereichs Fehler mit einem Array - keine Ahnung warum?

8

Ich habe ein Array als solches deklariert Dim rArray() As Variant , aber wenn ich versuche, die Werte zu benutzen, die darin gespeichert sind (wie unten gezeigt), bekomme ich einen Index außerhalb des Bereichsfehlers. Die UBound(rArray) und LBound(rArray) gibt beide Werte 14 und 1 zurück, der Fehler tritt jedoch in der Debug.Print -Zeile auf.

Wenn ich die for-Anweisung wie folgt verwende

%Vor%

dann funktioniert es ohne Probleme, aber für die Zwecke, die ich dieses Array erstelle, brauche ich die Flexibilität, jedes in dieser Reihenfolge gespeicherte Element auszuwählen - was bedeutet, dass ich mich auf sie beziehen muss, indem ich Indizes benutze.

Ich habe mehrere Möglichkeiten ausprobiert, um dieses Problem ohne Glück zu lösen und fast den halben Tag mit diesem einen Thema zu verbringen. Könnte irgendjemand darauf hinweisen, was ich ändern muss, damit das funktioniert?

%Vor%

Edit: Eine weitere erwähnenswerte Tatsache ist, dass das Array innerhalb einer Funktion deklariert und verwendet wird, aber nicht von oder an die Funktion übergeben wird. Können Arrays nicht in Funktionen deklariert und verwendet werden?

    
Abhi O. 12.06.2015, 21:07
quelle

1 Antwort

7

Wenn Sie einem varianten Array Arbeitsblattwerte zuweisen, endet immer mit einem 2-D-Array, das 1 basiert (z. B. 1 zu etwas, 1 zu etwas) ; nie 0 für etwas, 0 für etwas). Wenn Sie Werte von einer einzelnen Spalte erhalten, ist der zweite Rang nur 1 zu 1.

Dies kann mit folgendem bewiesen werden.

%Vor%

Sie müssen also nach dem Element im ersten Rang des Arrays fragen; es ist nicht ausreichend, nur nach dem Element zu fragen.

    
Jeeped 12.06.2015, 21:49
quelle

Tags und Links