Rückkehr in VBA-Code-Beispiele

VBA – Array durchlaufen (For Each Item in Array)

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.

vba array 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:

vba array teilweise durchlaufen

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! vba save as


Learn More!