/ / Excel VBA-Schleife

Excel-VBA-Schleife

Einfache Wiederholung | Doppelschleife | Dreifachschleife | Machen Sie While Loop

Looping ist eine der leistungsstärksten Programmiertechniken. EIN Schleife im Excel VBA ermöglicht es Ihnen, eine Reihe von Zellen mit nur wenigen Codezeilen zu durchlaufen.

Einfache Wiederholung

Sie können eine einzelne Schleife verwenden, um einen eindimensionalen Bereich von Zellen zu durchlaufen.

Fügen Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt ein, und fügen Sie die folgenden Codezeilen hinzu:

Dim i As Integer

For i = 1 To 6
    Cells(i, 1).Value = 100
Next i

Ergebnis, wenn Sie auf die Befehlsschaltfläche auf dem Blatt klicken:

Einzelschleife in Excel VBA

Erläuterung: Die Codezeilen zwischen For und Next werden sechs Mal ausgeführt. Für i = 1 gibt Excel VBA den Wert 100 in die Zelle am Schnittpunkt von Zeile 1 und Spalte 1 ein. Wenn Excel VBA Next i erreicht, erhöht es i um 1 und springt zurück zur For-Anweisung. Für i = 2 gibt Excel VBA den Wert 100 in die Zelle am Schnittpunkt von Zeile 2 und Spalte 1 usw. ein.

Hinweis: Es empfiehlt sich, den Code immer zwischen den Wörtern For und Next einzurücken. Dies erleichtert das Lesen Ihres Codes.

Doppelschleife

Sie können eine Doppelschleife verwenden, um einen zweidimensionalen Zellbereich zu durchlaufen.

Fügen Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt ein, und fügen Sie die folgenden Codezeilen hinzu:

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 die Befehlsschaltfläche auf dem Blatt klicken:

Doppelschleife in Excel VBA

Erläuterung: Für i = 1 und j = 1 gibt Excel VBA den Wert 100 in die Zelle am Schnittpunkt von Zeile 1 und Spalte 1 ein. Wenn Excel VBA Next j erreicht, erhöht es j mit 1 und springt zurück zur For j -Anweisung. Für i = 1 und j = 2 gibt Excel VBA den Wert 100 in die Zelle am Schnittpunkt von Zeile 1 und Spalte 2 ein. Als Nächstes ignoriert Excel VBA Next j, da j nur von 1 bis 2 ausgeführt wird. Wenn Excel VBA Next i erreicht , es erhöht i mit 1 und springt zurück zur For i-Anweisung. Für i = 2 und j = 1 gibt Excel VBA den Wert 100 in die Zelle am Schnittpunkt von Zeile 2 und Spalte 1 usw. ein.

Dreifachschleife

Sie können eine dreifache Schleife verwenden, um zweidimensionale Bereiche in mehreren Excel-Arbeitsblättern zu durchlaufen.

Fügen Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt ein, und fügen Sie die folgenden Codezeilen hinzu:

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 gegenüber dem Code für die Doppelschleife besteht darin, dass wir eine weitere Schleife hinzugefügt und Arbeitsblätter hinzugefügt haben (c). vor Cells, um den zweidimensionalen Bereich auf dem ersten Blatt für c = 1, das zweite Blatt für c = 2 und das dritte Blatt für c = 3 zu erhalten. Laden Sie die Excel-Datei herunter, um dieses Ergebnis zu sehen.

Machen Sie While Loop

Neben der For Next-Schleife gibt es weitere Schleifen in Excel VBA. Zum Beispiel die Do While-Schleife. Code, der zwischen "Do While" und "Loop" eingefügt wird, wird solange wiederholt, wie der Teil nach "Do While" wahr ist.

1. Platzieren Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt, und fügen Sie die folgenden Codezeilen hinzu:

Dim i As Integer
i = 1

Do While i < 6
    Cells(i, 1).Value = 20
    i = i + 1
Loop

Ergebnis, wenn Sie auf die Befehlsschaltfläche auf dem Blatt klicken:

Machen Sie While Loop

Erläuterung: Solange i kleiner als 6 ist, trägt Excel VBA den Wert 20 in die Zelle am Schnittpunkt von Zeile i und Spalte 1 ein und erhöht i um 1. In Excel VBA (und in anderen Programmiersprachen) bedeutet das Symbol "=" wird. Es bedeutet nicht gleich. Also bedeutet i = i + 1, dass i zu i + 1 wird. Mit anderen Worten: nimm den gegenwärtigen Wert von i und füge 1 hinzu. Wenn beispielsweise i = 1 ist, wird i 1 + 1 = 2. Als Ergebnis wird der Wert 20 fünfmal in die Spalte A gesetzt (nicht sechs, weil Excel VBA aufhört, wenn i gleich 6 ist).

2. Geben Sie einige Zahlen in Spalte A ein.

Eine beliebige Anzahl von Zeilen

3. Platzieren Sie eine Befehlsschaltfläche in Ihrem Arbeitsblatt, und fügen Sie die folgenden Codezeilen hinzu:

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 die Befehlsschaltfläche auf dem Blatt klicken:

Fortgeschrittene While-Schleife

Erklärung: Solange Zellen (i, 1).Wert ist nicht leer (<> bedeutet nicht gleich), Excel VBA gibt den Wert in die Zelle am Schnittpunkt von Zeile i und Spalte 2 ein, dh 10 höher als der Wert in der Zelle am Schnittpunkt von Zeile i und Spalte 1 Excel VBA stoppt, wenn i gleich 7 ist, da Cells (7, 1) .Value leer ist. Dies ist eine großartige Möglichkeit, eine beliebige Anzahl von Zeilen in einem Arbeitsblatt zu durchlaufen.

Lesen Sie auch: