Excel VBA-Schleifen

Schleifen können als die am besten funktionierende Komponente von VBA betrachtet werden und können auch als das Herz von Makros betrachtet werden. Sie helfen Ihnen normalerweise dabei, die Anzahl der Zeilen in Ihrem Code zu reduzieren und die Arbeit in Minuten zu erledigen, was für einen Menschen Stunden dauern kann.

Im Alltag fällt einem Programmierer ein, dass er immer wieder denselben Code ausführen muss. Es heißt Looping. Es ist offensichtlich, dass jedes Mal, wenn derselbe Code ausgeführt wird, ungefähr das gleiche Ergebnis erzielt wird, wobei die Variable teilweise geändert wird. Looping bietet eine Reihe von Vorteilen, aber das Wichtigste ist die Automatisierung. Es hilft, das Zeug zu automatisieren.

Wenn Sie noch kein VBA-Skript verwendet haben, können Sie einfach eine Excel-Arbeitsmappe öffnen und Alt + F11 drücken . Es wird ein VBA-Projekt geöffnet.

Gehen wir tiefer ins Innere.

Angenommen, wir wollten 1 bis 10 Zahlen auf einmal drucken. Wir können es mit dem folgenden Code tun.

Code:

 Sub loop1 () Debug.Print 1 Debug.Print 2 Debug.Print 3 Debug.Print 4 Debug.Print 5 Debug.Print 6 Debug.Print 7 Debug.Print 8 Debug.Print 9 Debug.Print 10 End Sub 

Wenn Sie den Code schnell durcharbeiten können, habe ich Debug.Print eins nach dem anderen hinzugefügt, um Zahlen von 1 bis 10 zu drucken. Nachdem Sie den Code ausgeführt haben, können Sie die Ausgabe im Direktfenster sehen. Drücken Sie zum Öffnen des Direktfensters an einer beliebigen Stelle in Excel die Tastenkombination Strg + G.

Führen Sie den Code mit der Taste F5 oder manuell aus (siehe Abbildung unten). Überprüfen wir also die Ausgabe für diesen Code.

Arten von VBA-Schleifen in Excel

Als Programmierer werden Sie niemals darauf aus sein, sich wiederholende Zeilen zu schreiben, die das gleiche Ergebnis liefern. Sie möchten es automatisieren. Daher werden wir verschiedene Excel-VBA-Schleifen sehen und anhand einiger Beispiele erläutern, wie sie verwendet werden.

Typ 1 - VBA für nächste Schleife

Bei der nächsten VBA-Schleife können wir den Zellbereich durchlaufen und für jede in der Schleife angegebene Zelle die gleiche Aufgabe ausführen. Die Start- und Endnummer müssen hier angegeben werden.

Code:

 Sub loop1 () Für i = 1 bis 10 Zellen (i, 1) .Value = i Next i End Sub 

Dieser Code gibt genau die gleiche Ausgabe aus wie der vorherige. Das Bemerkenswerteste an diesem Code ist jedoch die Reduzierung einiger Zeilen. Wir haben den 12-zeiligen Code auf einen Code mit 5 Zeilen reduziert.

In diesem Code ist loop1 der Name des Makros. Die for-Schleife beginnt bei i = 1, gibt den Wert von i (dh 1) unter der Excel-Zelle aus und geht bei Next erneut zum Anfang der for-Schleife und bewirkt, dass i = 2 den Wert von i (dh 2) ausgibt. in der nächsten Zelle und so weiter, bis der Code seinen letzten Wert, dh 10, erreicht. Sobald der Code den letzten Wert von i (10) erreicht, wird der Code selbst beendet, da kein ganzzahliger Wert über 10 verfügbar ist.

Führen Sie den Code mit der Taste F5 oder manuell aus. So können Sie die Ausgabe wie folgt sehen.

Typ 2 - VBA für Schleife mit Vorwärtsschritt

Wie Sie im vorherigen Loop-Beispiel gesehen haben, wurde die Anzahl in einem Schritt erhöht. Standardmäßig wird der Schrittwert in VBA als 1 betrachtet. Ist es jedoch möglich, einen eigenen Schritt zu setzen? Angenommen, Sie möchten nur die geraden Zahlen zwischen 1 und 20 sehen. Wie geht das?

Wie die allgemeine Mathematik vorschlägt, werden die Zahlen, die sich im Abstand von 2 voneinander befinden (beginnend mit einer ersten geraden Zahl 2), als gerade Zahlen betrachtet, oder?

Wir werden die gleiche Logik anwenden. Siehe unten Code für Ihre Referenz.

Code:

 Sub ForwardStep () For i = 2 To 20 Step 2 Cells (i, 1) .Value = i Next i End Sub 

Für die Werte ab 2 ermöglicht diese Schleife das Drucken von 2, 4, 6, 8… 20 in nachfolgenden Excel-Zellen. Schritt 2 wurde explizit angegeben, damit der Code ab Nummer 2 mit Schritt 2 zur nächsten Nummer springt (dh 4 wird gedruckt) und so weiter. Dieser Prozess wird fortgesetzt, bis 20 in einer Zelle auftritt. Sobald 20 in einer Zelle vorkommt, wird die Schleife automatisch beendet.

Führen Sie den Code mit der Taste F5 oder manuell aus. So können Sie die Ausgabe wie folgt sehen.

Typ 3 - VBA für Schleife mit Rückwärtsschritt

Genauso wie für eine Schleife mit einem Vorwärtsschritt können wir für eine Schleife mit einem Rückwärtsschritt verwenden. Was ist zum Beispiel, wenn wir unseren Rückwärtsschritt auf -2 setzen und eine for-Schleife von den Werten 20 bis 2 ausführen?

Wir werden sehen, wie es funktioniert.

Code:

 Sub BackwardStep () For i = 20 To 2 Schritt -2 Debug.Print i Next i End Sub 

Nach dem Ausführen des Codes können wir die Ausgabe im Direktfenster sehen. Drücken Sie zum Öffnen des Direktfensters an einer beliebigen Stelle in Excel die Tastenkombination Strg + G.

Da wir bei Schritt -2 einen Startpunkt der Schleife als 20 und einen Endpunkt als 2 angegeben haben, beginnt die Schleife bei 20 und geht bei Schritt -2 zur nächsten Zahl über, die -18 ist und so weiter. Sobald die Schleife den Wert 2 erreicht, wird sie automatisch beendet und der letzte Wert als 2 ausgegeben.

Typ 4 - VBA Nested For Loop

Wir können die For-Schleife auch verschachteln. Es wird jedoch nicht empfohlen, dieselbe Schleife mehr als dreimal in einem Code zu verschachteln (dies kann als Fehler in der Logik angesehen werden).

Im folgenden Code finden Sie Informationen zur verschachtelten for-Schleife.

Code:

 Sub NestedFor () Für i = 1 bis 10 Für j = 1 bis 2 Zellen (i, j) .Value = i * j Next j Next i End Sub 

In diesem Beispiel setzt das Makro bei i = 1 und j = 1 den Wert von i * j (1 * 1) in den Schnittpunkt von Zeile i = 1 und Spalte j = 1 (dh Zelle A1) und geht zum nächsten Wert von j (2) Behalten von i = 1. In den Schnittpunkt von Zeile i = 1 und Spalte j = 2 (dh Zelle B1) gibt das Makro den Wert von I * j (1 * 2) ein. Die Schleife ignoriert den nächsten Wert von j, da j nur von 1 bis 2 variiert und zum nächsten Wert von i übergeht.

Für i = 2 und j = 1 gibt das Makro den Wert von i * j (2 * 1) in den Schnittpunkt der 2. Zeile und 1. Spalte (dh Zelle A2) ein und fährt fort. Bis der Bereich von i und j.

Führen Sie den Code mit der Taste F5 oder manuell aus (siehe Abbildung unten). So können Sie die Ausgabe wie folgt sehen.

Typ 5 - VBA Do While-Schleife

Die Do While-Schleife ist eine der interessantesten Schleifen in VBA. Sie können die Bedingung überprüfen und die Ausgabe (DO) schreiben, wenn eine bestimmte Bedingung oder ein Satz von Bedingungen erfüllt ist (oder die Bedingung / en WAHR sind).

Siehe den Code unten:

Code:

 Sub do_whileloop () Dim i As Integer i = 1 Do While i <= 10 Zellen (i, 1) .Value = i * ii = i + 1 Loop End Sub 

Diese Schleife funktioniert wie folgt:

Für die Werte von i von 1 (i = 1 anfangs) bis 10 berechnet es i * i (dh den quadratischen Wert für jeden ganzzahligen Wert von i) und gibt ihn unter Zelle 1 bis 10 ein. Die Ausgabe ist nichts anderes als die quadrierten Werte der ganzen Zahlen 1 bis 10. Schauen Sie sich die Schleife unter diesem Code genauer an. Das Hinzufügen ist obligatorisch, da das System sonst einen Fehler meldet.

Führen Sie den Code mit der Taste F5 oder manuell aus. So können Sie die Ausgabe wie folgt sehen.

Dies sind einige Beispiele für VBA-Schleifen, die ich in diesem Artikel sorgfältig behandelt habe. Ich hoffe, es ist präzise genug, um einige Konzepte zu klären.

Dinge, an die man sich erinnern sollte

  • Achten Sie bei der Verwendung von for loop mit einem Rückwärtsschritt darauf, dass Ihre Startnummer größer als Ihre Endnummer ist und umgekehrt.
  • Stellen Sie unter Do while-Schleife sicher, dass Sie Loop verwenden, um das Do while zu schließen, bevor Sie den gesamten VBA-Code beenden. Andernfalls gibt das System einen Compilerfehler mit der Fehlermeldung "Do Without Loop" aus.

Sie können diese Excel-Vorlage für VBA-Schleifen hier herunterladen - Excel-Vorlage für VBA-Schleifen

Empfohlene Artikel

Dies war eine Anleitung zu Excel VBA-Schleifen. Hier haben wir die Arten von Excel-VBA-Schleifen und ihre Verwendung zusammen mit einigen praktischen Beispielen und einer herunterladbaren Excel-Vorlage besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA-Funktion in Excel
  2. VBA VLOOKUP-Funktion
  3. Excel-Tastenkombinationen
  4. Excel-Perzentilformel

Kategorie: