VBA – Array durchlaufen (For Each Item in Array)
In this Article
In diesem Tutorial lernen Sie, wie Sie Arrays anhand einer Schleife durchlaufen können.
Es gibt zwei primäre Möglichkeiten, Arrays mit VBA anhand einer Schleife durchzulaufen:
- For Each-Schleife – Die For-Each-Schleife durchläuft jedes Element im Array.
- For Next-Schleife – Die For-Next-Schleife durchläuft den Bereich zwischen bestimmten Start- und Endpositionen im Array (mit den Funktionen UBound und LBound kann das gesamte Array durchlaufen werden).
For Each Item in Array
Die For Each-Schleife ermöglicht es Ihnen, jedes Element des Arrays zu durchlaufen.
Sub For_Schleife_Array_Statisch()
'Ein Variant Array deklarieren
Dim strNamen(1 To 4) As String
'das Array füllen
strNamen(1) = "Bob"
strNamen(2) = "Peter"
strNamen(3) = "Keith"
strNamen(4) = "Sam"
'deklarieren einer Variant-Variable, die das Array-Element enthält
Dim Element As variant
'Das gesamte Array durchlaufen
For Each Element in strNamen
'Das Element im Debug-Fenster anzeigen.
Debug.Print Element
Loop
End Sub
Mit der obigen Prozedur werden alle Namen im Array in einer Schleife durchlaufen.
For-Next-Schleife
Die For-Next-Schleife durchläuft jedes Element zwischen einer bestimmten Start- und Endposition im Arrays.
Einen Teil des Arrays durchlaufen
Sie können die Start- und Endpositionen für Ihre Schleife manuell festlegen. Dies kann sinnvoll sein, wenn Sie die Größe des Arrays kennen und/oder nur einen Teil des Arrays in einer Schleife durchlaufen wollen.
Sub For_Next_Schleife_Statisch()
'Ein Array vom Typ Variant deklarieren
Dim strNamen(1 To 4) As String
'Das Array füllen
strNamen(1) = "Bob"
strNamen(2) = "Peter"
strNamen(3) = "Keith"
strNamen(4) = "Sam"
'Ein Variable vom Typ Integer (Ganzzahl) deklarieren
Dim i As Integer
'Den Bereich von Position 2 bis Position 3 des Arrays durchlaufen
For i = 2 To 3
'Den Namen im Dirrektfenster anzeigen
Debug.Print strNamen(i)
Next i
End Sub
Im obigen Beispiel haben wir die Positionen 2 und 3 des Arrays in einer Schleife durchlaufen. Das Direktfenster würde die Namen folgendermaßen ausgeben:
Ein Ganzes Array durchlaufen
Als Nächstes werden wir die Funktionen UBound und LBound verwenden, um ein ganzes Array in einer Schleife zu durchlaufen. Dies ist sehr nützlich, wenn sich die Start- und Endpositionen des Arrays ändern können (z.B. bei einem dynamischen Array):
Sub For_Next_Schleife_Dynamisch()
'Ein Array vom Typ Variant deklarieren
Dim strNamen() As String
'Das Array initialisieren
ReDim strNamen(1 To 4)
'Das Array füllen
strNamen(1) = "Bob"
strNamen(2) = "Peter"
strNamen(3) = "Keith"
strNamen(4) = "Sam"
'Ein Variable vom Typ Integer (Ganzzahl) deklarieren
Dim i As Integer
'Das Array von der unteren bis zur oberen Grenze in einer Schleife durchlaufen(das gesamte Array)
For i = LBound(strNamen) To UBound(strNamen)
'Den Namen im Direktfenster anzeigen
Debug.Print strNamen(i)
Next i
End Sub
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!