In diesem Tutorial erfahren Sie, wie Sie Arrays in VBA durchlaufen.
Es gibt zwei Hauptmethoden, um Arrays mit VBA zu durchlaufen:
- Für jede Schleife - Die For Each Loop durchläuft jedes Element im Array.
- Für die nächste Schleife - Die For Next-Schleife durchläuft die angegebenen Start- und Endpositionen des Arrays (Wir können die UBound- und LBound-Funktionen verwenden, um das gesamte Array zu durchlaufen).
Für jedes Element im Array
Die Für jede Schleife ermöglicht es Ihnen, jedes Element des Arrays zu durchlaufen.
12345678910111213141516171819 | Unter LoopForArrayStatic()'ein Variantenarray deklarierenDim strNames(1 bis 4) als String'das Array auffüllenstrNames(1) = "Bob"strNames(2) = "Peter"strNames(3) = "Keith"strNames(4) = "Sam"'eine Variante für das Array-Element deklarierenArtikel als Variante dimmen'Schleife durch das gesamte ArrayFür jedes Element in strNames'Element im Debug-Fenster anzeigen.Debug.Print-ElementSchleifeEnd Sub |
Das obige Verfahren durchläuft alle Namen im Array.
Für die nächste Schleife
Die For Next-Schleife durchläuft jedes Element an einer bestimmten Start- und Endposition des Arrays.
Durchlaufen eines Teils des Arrays
Sie können die Start- und Endpositionen für Ihren Loop manuell festlegen. Dies kann sinnvoll sein, wenn Sie Ihre Array-Größe kennen und/oder nur einen Teil eines Arrays durchlaufen möchten.
12345678910111213141516 | Sub LoopForNextStatic()'ein Varianten-Array deklarierenDim strNames(1 bis 4) als String'das Array auffüllenstrNames(1) = "Bob"strNames(2) = "Peter"strNames(3) = "Keith"strNames(4) = "Sam"'eine ganze Zahl deklarierenDim i As Integer'Schleife von Position 2 zu Position 3 des ArraysFür i = 2 bis 3'Namen im unmittelbaren Fenster anzeigenDebug.Print strNames(i)Als nächstesEnd Sub |
Im obigen Beispiel haben wir die Positionen 2 und 3 des Arrays durchlaufen. Das unmittelbare Fenster würde die Namen wie folgt zurückgeben.
Durchlaufen des gesamten Arrays
Als Nächstes verwenden wir die UBound- und LBound-Funktionen, um ein gesamtes Array zu durchlaufen. Dies ist äußerst nützlich, wenn sich die Start- und Endpositionen des Arrays ändern könnten (z. B. ein dynamisches Array):
123456789101112131415161718 | Sub LoopForNextDynamic()'ein Varianten-Array deklarierenDim strNames() As String'Array initialisierenReDim-StrNames(1 bis 4)'das Array auffüllenstrNames(1) = "Bob"strNames(2) = "Peter"strNames(3) = "Keith"strNames(4) = "Sam"'eine ganze Zahl deklarierenDim i As Integer'Schleife von der unteren Grenze des Arrays zur oberen Grenze des Arrays - das gesamte ArrayFür i = LBound(strNames) Zu UBound(strNames)'Namen im unmittelbaren Fenster anzeigenDebug.Print strNames(i)Als nächstesEnd Sub |