7 Beispiele für For-Schleifen in Microsoft Excel VBA

Anonim

Wenn Sie ein VBA-Programm schreiben und dieselbe Aufgabe mehrmals ausführen möchten, können Sie dies mithilfe von VBA-for-Schleifen tun. 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 dies mithilfe von Makrocode erzwingen. Sie erhalten Ergebnisse mit Schleife.

Die For-Schleife in VBA ist eine der gängigsten Schleifenarten. Die For-Schleife hat zwei Formen: For Next und For Each In Next. Die For-Schleife wird normalerweise verwendet, um sequenziell durch eine Liste von Elementen oder Zahlen zu navigieren. Um die For-Schleife an einem beliebigen Punkt zu beenden, können wir die Exit-Anweisung verwenden. Die For-Schleife läuft rund und rund, bis sie die Endbedingung erfüllt. Sobald die Endbedingung erfüllt ist, wird der Programmierfluss in seiner natürlichen Richtung nach unten fortgesetzt.

Die For… Next-Schleife hat die folgende Syntax: For counter = start_counter To end_counter 'Tue hier etwas (Ihren Code) Next counter 

Wir erstellen tatsächlich eine Schleife, die Variable verwendet Schalter als „Zeitnehmer“ der Schleife. Wir setzen es auf einen Wert gleich start_counter am Anfang der Schleife und inkrementiere sie dann während jeder Schleife um 1, bis sie die Endbedingung erfüllt. Die Schleife wird ausgeführt, bis der Wert von Schalter wird gleich end_counter. Die Schleife wird zum letzten Mal ausgeführt, wenn die beiden obigen Werte übereinstimmen, und dann stoppt die Schleife.

All dies mag für einige Leute verwirrend sein, also lass uns 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-Bildschirm zu starten, verwenden Sie ALT + F11
  • Neues Modul einfügen
  • Kopieren Sie den folgenden Code in das VB-Standardmodul

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 

Code-Erklärung:

  • Der VBA-Code erfordert, dass Sie StartNumber einen Wert zuweisen, wobei EndNumber Variablen sind, die als Ganzzahlen als Startpunkt für Ihre Schleife deklariert werden
  • Diese Werte können eine beliebige Zahl sein und wir haben EndNumber als 5
  • StartNumber wird bei 1 . gestartet
  • Für StartNumber = 1 To EndNumber bedeutet, dass der Code von 1 (StartNumber) bis 5 (EndNumber) beginnt.
  • MsgBox StartNumber & " ist " & "Your StartNumber" zeigt das folgende Meldungsfeld an

Loop2 (Füllwerte)

Sub Loop2() 'Füllt Zellen A1:A56 mit Werten von X durch Schleifen' --- Kommentar 'Wert von X in jeder Schleife um 1 erhöhen' --- Kommentar Dim X As Integer For X = 1 To 56 Range("A " & X).Wert = X Nächstes X Ende Unter 

Code-Erklärung:

  • Wir haben X als ganze Zahl zugewiesen
  • Für X = 1 bis 56; dies beginnt mit 1 und wird bis 56 mit einer Schrittweite von jeweils 1 fortgesetzt
  • Bereich("A" & X).Wert = X; diese Zeile speichert den Wert von X und geht in den Bereich A1 bis A56

Loop3 (Zellen mit Hintergrundfarbe füllen)

Sub Loop3() ' Füllt die Zellen B1:B56 mit den 56 Hintergrundfarben' --- Kommentar 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 

Code-Erklärung:

  • Wir haben X als ganze Zahl zugewiesen
  • Für X = 1 bis 56 wird mit 1 begonnen und bis 56 mit einer Schrittweite von jeweils 1 fortgesetzt
  • Bereich("B" & X).Auswählen; Diese Zeile speichert den Wert von X und wählt die Zelle B1 bis B56 aus
  • Die nächsten 4 Zeilen, z. 2 gehört zur Farbe Weiß; 3 für rot & so weiter

Schleife 4 (Werte mit Inkrement von 2) füllen

Standardmäßig ist der Step-Wert vorwärts 1, jedoch kann er auch auf eine Zahl größer als 1 eingestellt werden.

Sub Loop4() ' Füllt jede zweite Zelle von C1:C50 mit Werten von X' --- Kommentar Dim X As Integer For X = 1 To 50 Step 2 Range("C" & X).Value = X Next X End Sub 

Code-Erklärung:

  • Wir haben X als ganze Zahl zugewiesen
  • Für X = 1 bis 50 Schritt 2; dies beginnt mit 1 in X bis 50 mit einer Inkrementierung von jeweils 2
  • Bereich("C" & X).Wert = X; diese Zeile speichert den Wert von X und geht in den Bereich C1 bis C50

Schleife 5 (VBA For Loop in Reverse mit STEP-Anweisung)

Es ist nicht notwendig, dass sich der Zähler in der For-Schleife nur von niedrigen zu höheren Werten bewegt; stattdessen kann die For-Schleife auch rückwärts laufen, d. h. von hohen zu niedrigeren Werten.

Auch wenn der Step-Wert standardmäßig vorwärts 1 ist, kann er jedoch in umgekehrter Reihenfolge auf eine Zahl gesetzt werden.

Sub Loop5() ' Füllt Zellen von D1:D50 mit Werten von X' --- Kommentar ' In diesem Fall nimmt X um 1 ab' --- Kommentar Dim X As Integer, Row As Integer Row = 1 For X = 50 To 0 Schritt -1 Range("D" & Row).Value = X Row = Row + 1 Next X End Sub 

Code-Erklärung:

  • Wir haben X & Row als Integer zugewiesen
  • Zeile enthält Wert 1
  • Für X = 50 bis 0 Schritt -1; dies beginnt bei 50 mit Abnahme um 1 in X bis 0
  • Range("D" &Zeile).Wert = X; diese Zeile speichert den Wert von X und geht in den Bereich D1 bis D50

Schleife 6 (füllt jede zweite Zelle im Rückwärtsgang mit SCHRITT-2)

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

Sub Loop6() ' Füllt jede zweite Zelle von E1:E100 mit Werten von X' --- Kommentar ' In diesem Fall nimmt X um 2 ab' --- Kommentar Dim X As Integer, Row As Integer Row = 1 For X = 100 Zu 0 Schritt -2 Range("E" & Row).Value = X Row = Row + 2 Next X End Sub 

Code-Erklärung:

  • Wir haben X & Row als Integer zugewiesen
  • Zeile enthält Wert 1
  • Für X = 100 bis 0 Schritt -2; dies beginnt bei 100 mit Abnahme um 2 in X bis 0
  • Range("E" &Zeile).Wert = X; diese Zeile speichert den Wert von X und geht in den Bereich E1 bis E100

Schleife 7 (For-Schleife mit IF-Bedingung: Füllt Zellen ab einer bestimmten Zelle)

Dadurch werden die Zellen von Zelle F11 mit dem Wert 11 gefüllt, bis X die IF-Bedingung erfüllt

Sub Loop7() ' Beginnt, die Zellen F11:F100 mit Werten von X zu füllen' --- Kommentar ' Dies wird die Schleife nach 50 verlassen' --- Kommentar 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 

Code-Erklärung:

  • Wir haben X als ganze Zahl zugewiesen
  • Für X = 11 bis 100; beginnt bei 11 mit Inkrementierung um 1 in X, bis die Bedingung erfüllt ist
  • Bereich("F" &X).Wert = X; Diese Zeile speichert den Wert von X und geht in den Bereich F11 über, bis die Bedingung erfüllt ist

  • Nachdem Sie in Zelle F50 den Wert 50 eingegeben haben, wird die folgende Meldungsbox angezeigt

Abschluss: Mit den obigen 7 Beispielen können wir die For-Schleife in unserem regulären oder jedem Automatisierungsteil anwenden.

Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie mit Ihren Freunden auf Facebook. Und Sie können uns auch auf Twitter und Facebook folgen.
Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder erneuern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site