Vordefinieren eines multidimensionalen Arrays in Excel VBA

8

Ich weiß, dass wir Single-Dimension-Array in Excel VBA mit den folgenden

definieren können %Vor%

Wie können Sie mehrdimensionale Arrays auf die gleiche Weise vordefinieren?

Ich möchte auch bestimmte Ebenen auf folgende Weise verfolgen:

%Vor%

Der erste Index definiert das Level und darf daher nicht fortlaufend sein ... wie nach 16 gibt es gerade 8 und so weiter. Für jeden brauche ich 3 Informationen, die 0,1,2 Sekunden sind.

Kann mir jemand sagen, wie man dasselbe in Excel VBA erreicht?

    
Sunny D'Souza 04.08.2011, 08:55
quelle

4 Antworten

9

Sie können keine nicht aufeinander folgenden Indizes in einem Array wie diesem haben. Wenn Sie nur eine nicht aufeinanderfolgende Teilmenge der Indizes verwenden, sind alle anderen Elemente leer, verbrauchen aber immer noch Speicherplatz, was sowohl ineffizient als auch fehleranfällig ist ( LaunchMissile = Levels(17,1) , hoppla!).

Was Sie suchen, ist das Dictionary-Objekt. Vor der Verwendung muss Referenz folgendermaßen gesetzt werden: Tools & gt; Referenzen & gt; Überprüfen Sie Microsoft Scripting Runtime.

Beispiel:

%Vor%

Beachten Sie, dass ein Collection-Objekt auch den Zweck erfüllen könnte. Vorteil: nativ zu VBA, daher muss keine Referenz gesetzt werden. Nachteil: Schlüssel ist schreibgeschützt, was ziemlich peinlich sein kann.

    
Jean-François Corbett 04.08.2011, 10:12
quelle
8

Es gibt eine Möglichkeit, ein 2D-Array mit Hilfe von evaluate () zu definieren, ähnlich wie mit array () für 1D:

%Vor%

Wenn Sie eine Zeichenfolge verwenden möchten, um das Array zu definieren, müssen Sie es wie folgt verwenden

%Vor%

Wenn Sie weitere Informationen über andere Verwendungen der Funktion Evaluate () wünschen, überprüfen Sie diesen tollen Beitrag.

Ссылка

    
Hubisan 05.07.2012 15:45
quelle
3

Sie könnten Array(Array()) für z.B.

verwenden %Vor%

Um auf das erste Element zu verweisen, verwenden Sie data(0)(0)

(kopiert von hier )

    
Patrick Honorez 04.08.2011 09:25
quelle
0

Es gibt keine Möglichkeit, ein zweidimensionales Array zu deklarieren und aufzufüllen, wenn Sie die Funktion array () verwenden. Sie können ReDim verwenden, um die Array-Dimensionen zu definieren und sie dann aufzufüllen. Hier ist ein Beispiel:

%Vor%

Leider wird beim Erstellen eines Arrays für jeden Eintrag ein Element von der Untergrenze zur Obergrenze erstellt. Sie werden leer sein, aber sie sind da, also müssen Sie sich dessen bewusst sein, besonders wenn Sie vorhaben, es zu durchlaufen.

    
aevanko 04.08.2011 09:00
quelle

Tags und Links