_Wenn Sie ein VBA-Programm schreiben und dieselbe Aufgabe mehrmals ausführen möchten, können Sie dies tun, indem Sie VBA für Schleifen verwenden. VBA ist eine sequentielle Programmiersprache. Jede Codezeile wird von oben nach unten ausgeführt, bis keine Codezeilen mehr zu lesen sind. Wenn Sie zurückgehen und eine Aufgabe ausführen möchten, müssen Sie die Verwendung von Makrocode erzwingen.

Sie erhalten Ergebnisse mit loop._

Die For-Schleife in VBA ist eine der häufigsten Arten von Schleifen. Die For-Schleife hat zwei Formen: For Next und For Each In Next. Die For-Schleife wird normalerweise verwendet, um nacheinander durch eine Liste von Elementen oder Zahlen zu navigieren.

Um die For-Schleife an einem bestimmten Punkt zu beenden, können wir die exit-Anweisung verwenden.

For Loop wird rund und rund gehen, bis die Endbedingung erfüllt ist. Sobald die Endbedingung erfüllt ist, wird der Programmierfluss in seiner natürlichen Richtung nach unten fortgesetzt.

The For … Next loop has the following syntax:

For counter = start_counter To end_counter

'Do something here (your code)

Next counter

Wir erstellen tatsächlich eine Schleife, die einen variablen Zähler als „Zeitnehmer“ der Schleife verwendet. Wir setzen es auf einen Wert gleich start_counter am Anfang der Schleife und erhöhen es dann während jeder Schleife um 1, bis es die Endbedingung erfüllt. Die Schleife wird ausgeführt, bis der Wert des Zählers gleich end_counter ist. Die Schleife wird zum letzten Mal ausgeführt, wenn beide oben genannten Werte übereinstimmen und die Schleife dann stoppt.

All dies könnte für einige Leute verwirrend sein. Lassen Sie uns also mit wenigen Beispielen For Loop in Excel lernen.

Erstellen Sie eine neue Excel-Arbeitsmappe und speichern Sie sie mit der Erweiterung .xlsm. Um den Visual Basic-Editor zu starten, verwenden Sie ALT + F11. Neues Modul einfügen Kopieren Sie den folgenden Code in das VB-Standardmodul

img1

Schleife 1 (Nummer mit msgbox anzeigen)

Sub Loop1()

Dim StartNumber As Integer

Dim EndNumber As Integer

EndNumber = 5



For StartNumber = 1 To EndNumber

MsgBox StartNumber & " is " & "Your StartNumber"

Next StartNumber

End Sub

img2

Code Erläuterung:

Für den VBA-Code müssen Sie StartNumber einen Wert zuweisen, wobei EndNumber Variablen sind, die als Ganzzahlen als Startpunkt für Ihre Schleife deklariert sind. Diese Werte können eine beliebige Zahl sein und wir haben EndNumber als 5. StartNumber wird bei 1 gestartet. Für StartNumber = 1 bis EndNumber bedeutet, dass der Code von 1 (StartNumber) bis 5 (EndNumber)

beginnt * MsgBox StartNumber & „is“ & „Your StartNumber“ zeigt das folgende Meldungsfeld an

img3

Loop2 (Füllwerte)

Sub Loop2()

'Fills cells A1:A56 with values of X by looping' --- Comment

'Increase value of X by 1 in each loop' --- Comment

Dim X As Integer

For X = 1 To 56

Range("A" & X).Value = X

Next X

End Sub

img4

Code Erläuterung:

Wir haben X als Ganzzahl zugewiesen. Für X = 1 bis 56; Dies beginnt mit 1 und dauert bis 56 mit einem Inkrement von 1 jedes Mal. * Bereich („A“ & X) .Wert = X; Diese Zeile speichert den Wert von X und geht in den Bereich A1 bis A56

img5

über

Loop3 (Zellen mit Hintergrundfarbe füllen)

Sub Loop3()

' Fills cells B1:B56 with the 56 background colours' --- Comment

Dim X As Integer

For X = 1 To 56

Range("B" & X).Select

With Selection.Interior

.ColorIndex = X

.Pattern = xlSolid

End With

Next X

End Sub

img6

Code Erläuterung:

Wir haben X als Ganzzahl zugewiesen. Für X = 1 bis 56 wird mit 1 begonnen und bis 56 mit einem Inkrement von 1 jedes Mal fortgesetzt. Bereich („B“ & X) .Select; Diese Zeile speichert den Wert von X und wählt die Zelle B1 bis B56 aus. Die nächsten 4 Zeilen, d. h. Mit Auswahl. Innen wählt den inneren Farbindex aus und nimmt den Wert von X dieses Farbindex so, dass 1 zur Farbe Schwarz gehört. 2 gehört zur Farbe Weiß; 3 für rot & so weiter

img7

Schleife 4 (Werte in Schritten von 2 füllen)

Standardmäßig ist der Schrittwert Vorwärts 1, er kann jedoch auf eine Zahl größer als 1 eingestellt werden.

Sub Loop4()

' Fills every second cell from C1:C50 with values of X' --- Comment

Dim X As Integer

For X = 1 To 50 Step 2

Range("C" & X).Value = X

Next X

End Sub

img8

Code Erläuterung:

Wir haben X als Ganzzahl zugewiesen. Für X = 1 bis 50 Schritt 2; Dies beginnt mit 1 in X bis 50 mit einem Inkrement von 2 jedes Mal. * Bereich („C“ & X) .Wert = X; Diese Zeile speichert den Wert von X und geht in den Bereich C1 bis C50 über

img9

Schleife 5 (VBA für Schleife in umgekehrter Reihenfolge mit STEP-Anweisung)

Es ist nicht erforderlich, dass der Zähler in der For-Schleife nur von niedrigen zu höheren Werten wechselt. Stattdessen kann die For-Schleife auch rückwärts laufen, d. h. hohe bis niedrigere Werte.

Obwohl der Schrittwert standardmäßig vorwärts 1 ist, kann er in umgekehrter Reihenfolge auf eine Zahl gesetzt werden.

Sub Loop5()

' Fills cells from D1:D50 with values of X' --- Comment

' In this case X decreases by 1' --- Comment

Dim X As Integer, Row As Integer

Row = 1



For X = 50 To 0 Step -1

Range("D" & Row).Value = X

Row = Row + 1

Next X

End Sub

img10

Code Erläuterung:

Wir haben X & Row zugewiesen, da die Ganzzahl Row den Wert 1 enthält. Für X = 50 bis 0 Schritt -1; Dies beginnt bei 50 mit einer Verringerung um 1 in X bis 0 Bereich („D“ & Zeile) .Value = X; Diese Zeile speichert den Wert von X und geht in den Bereich D1 bis D50 über

img11

Schleife 6 (Füllt jede zweite Zelle in Reverse mit STEP-2)

Im obigen Beispiel für die For-Schleife können wir den Schritt und die Reihenfolge verwenden, um festzustellen, ob die For-Schleife in Vorwärts- oder Rückwärtsrichtung funktioniert.

Sub Loop6()

' Fills every second cell from E1:E100 with values of X' --- Comment

' In this case X decreases by 2' --- Comment

Dim X As Integer, Row As Integer

Row = 1

For X = 100 To 0 Step -2

Range("E" & Row).Value = X

Row = Row + 2

Next X

End Sub

img12

Code Erläuterung:

Wir haben X & Row zugewiesen, da die Ganzzahl Row den Wert 1 enthält. Für X = 100 bis 0 Schritt -2; Dies beginnt bei 100 mit einer Dekrementierung um 2 in X bis 0 („E“ & Zeile) .Value = X; Diese Zeile speichert den Wert von X und geht in den Bereich E1 bis E100 über

img13

Schleife 7 (Für Schleife mit IF-Bedingung: Füllt Zellen ab einer bestimmten Zelle) Dies füllt die Zellen aus Zelle F11 mit dem Wert 11, bis X die IF-Bedingung erfüllt

Sub Loop7()

' Starts to fill cells F11:F100 with values of X' --- Comment

' This will exit from the loop after 50' --- Comment

Dim X As Integer

For X = 11 To 100

Range("F" & X).Value = X

If X = 50 Then

MsgBox ("Bye Bye")

Exit For

End If

Next X

End Sub

img14

Code Erläuterung:

Wir haben X als Ganzzahl zugewiesen. Für X = 11 bis 100; beginnt bei 11 mit einem Inkrement von 1 in X, bis die Bedingung * Bereich („F“ & X) erfüllt. Wert = X; Diese Zeile speichert den Wert von X und geht in den Bereich F11 über, bis die Bedingung

img15

erfüllt * Nach Eingabe des Werts 50 in Zelle F50 wird das folgende Meldungsfeld angezeigt

Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie Ihren Freunden auf Facebook mit. Sie können uns auch auf Twitter und Facebook folgen.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder innovieren und für Sie verbessern können. Schreiben Sie uns an [email protected]