Looping ist eine der mächtigsten Programmiertechniken. Eine Schleife in Excel VBA ermöglicht es Ihnen, eine Schleife durch eine Reihe von Zellen mit nur wenigen Codes Linien.

Einkanalregler

Sie können eine einzelne Schleife eine Schleife durch einen eindimensionalen Bereich von Zellen verwenden.

Legen Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

Dim i As Integer

For i = 1 To 6

Cells(i, 1).Value = 100

Next i

Ergebnis, wenn Sie auf das Befehlsschaltflächen auf dem Blatt klicken:

Single Loop in Excel VBA

Erläuterung: Die Codezeilen zwischen For und Next werden sechsmal ausgeführt werden. Für i = 1, tritt in Excel VBA den Wert 100 in die Zelle am Schnittpunkt der Zeile 1 und Spalte 1. Wenn Excel VBA erreicht Next i, es i mit 1 erhöht und springt zur Erklärung der Rückseite. Für i = 2, tritt in Excel VBA den Wert 100 in die Zelle am Schnittpunkt der Zeile 2 und Spalte 1 usw.

Hinweis: es ist gute Praxis immer indent (tab) der Code zwischen den Worten For und Next. Dies macht den Code leichter zu lesen.

Double Loop

Sie können eine doppelte Schleife eine Schleife durch einen zweidimensionalen Bereich von Zellen verwenden.

Legen Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

Dim i As Integer, j As Integer

For i = 1 To 6

For j = 1 To 2

Cells(i, j).Value = 100

Next j

Next i

Ergebnis, wenn Sie auf das Befehlsschaltflächen auf dem Blatt klicken:

Double Loop in Excel VBA

Erläuterung: für i = 1 und j = 1, Excel VBA den Wert 100 in die Zelle am Schnittpunkt der Zeile 1 und der Spalte 1 eintritt, wenn Excel VBA erreicht Next j, erhöht es j mit 1 und springt für J-Anweisung an die Rückseite . Für i = 1 und j = 2, Excel VBA den Wert 100 in die Zelle an der Schnittstelle nur von Zeile 1 und Spalte 2. Als nächstes Excel VBA ignoriert Next j weil j von 1 bis 2 läuft eintritt, wenn Excel VBA erreicht Next i erhöht es i mit 1 und springt für i-Anweisung an die Rückseite. Für i = 2 und j = 1, tritt in Excel VBA den Wert 100 in die Zelle am Schnittpunkt der Zeile 2 und Spalte 1 usw.

Triple-Loop-

Sie können eine triple-Schleife durch zweidimensionale Bereiche auf mehrere Excel-Tabellen verwenden.

Legen Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3

For i = 1 To 6

For j = 1 To 2

Worksheets(c).Cells(i, j).Value = 100

Next j

Next i

Next c

Erläuterung: Die einzige Änderung, um den Code für die Doppel-Loop-Vergleich gemacht ist, dass wir eine weiteres hinzugefügt Schleife und hinzugefügt Arbeitsblatt (c). vor Cells für c der zweidimensionalen Bereich auf dem ersten Blatt zu bekommen = 1, das zweite Blatt für c = 2 und das dritte Blatt für c = 3. Laden Sie die Excel-Datei, dieses Ergebnis zu sehen.

Do While-Schleife

Neben der For Next-Schleife gibt es andere Schleifen in Excel VBA. Zum Beispiel kann der Do While-Schleife. Code platziert zwischen Do While-Schleife und wird, solange das Teil nach dem Do wiederholt werden, während der Fall ist.

  1. Legen Sie einen Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

Dim i As Integer

i = 1

Do While i < 6

Cells(i, 1).Value = 20

i = i + 1

Loop

Ergebnis, wenn Sie auf das Befehlsschaltflächen auf dem Blatt klicken:

Do While Loop

Erläuterung: solange i kleiner ist als 6, tritt in Excel VBA den Wert 20 in die Zelle am Schnittpunkt der Zeile i und der Spalte 1 und inkrementiert i um 1. In Excel VBA (und in anderen Programmiersprachen), das Symbol ‚= ‚Mittel wird. Es bedeutet nicht gleich. Also i = i 1 bedeutet i + wird i + 1. Mit anderen Worten: den aktuellen Wert von i nehmen und fügen Sie 1 zu. Zum Beispiel, wenn i = 1, i 1 wird + 1 = 2. Als Ergebnis 20 wird der Wert in Spalte A fünfmal platziert werden (nicht sechs, da Excel VBA stoppt, wenn i gleich 6).

  1. Einige Zahlen in Spalte A eingeben

Any Number Of Rows

  1. Ein Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

Dim i As Integer

i = 1

Do While Cells(i, 1).Value <> ""

Cells(i, 2).Value = Cells(i, 1).Value + 10

i = i + 1

Loop

Ergebnis, wenn Sie auf das Befehlsschaltflächen auf dem Blatt klicken:

Advanced Do While Loop

Erläuterung: Solange Zellen (i, 1) .Wert nicht leer ist (<> bedeutet gleiche nicht), Excel VBA den Wert in die Zelle eintritt am Schnittpunkt der Zeile i und der Spalte 2, die mit 10 höher als der Wert ist, in der Zelle an der Kreuzung der Zeile i und Spalte 1. Excel VBA stoppt, wenn i gleich 7, da die Zellen (7, 1) .Wert leer ist. Dies ist eine gute Möglichkeit, eine Schleife durch eine beliebige Anzahl von Zeilen in einem Arbeitsblatt.