VBA While-Schleife

VBA While Loop ist ein wichtiges und leistungsfähiges Konzept, das Sie vielleicht in den meisten Programmiersprachen gesehen haben. Wenn Sie dieses Konzept unter VBA beherrschen, können Sie leistungsstarke Skripte erstellen, die auf völlig andere und bequeme Weise mit Tabellendaten arbeiten. Bereiten Sie sich in diesem Artikel darauf vor, die Welt der verschiedenen while-Schleifen zu erkunden, und lassen Sie sich anhand mehrerer Beispiele helfen.

Die While-Schleife dient dazu, einen bestimmten Anweisungsblock zu wiederholen, sofern eine Bedingung erfüllt ist. Genauer gesagt wiederholt while-Schleife die entsprechende Anweisung, während eine Bedingung wahr ist. Sobald die Bedingung falsch wird (nicht erfüllt), wird die Schleife selbst beendet.

Grundsätzlich gibt es in Microsoft Excel VBA zwei Arten von while-Schleifen:

  • VBA While-Wend-Schleife
  • VBA-Do-While-Schleife

VBA While-Wend Loop ist vorhanden, um den Code mit einer älteren Codeversion kompatibel zu machen. Das VBA Do-While ist die aktualisierte Version der while-Schleife, die im Vergleich zur vorherigen Version flexibler und strukturierter ist und von der Microsoft-Community empfohlen wird.

Nur für den Fall, dass Sie sich fragen, was Wend bedeutet, es ist eine Kurzform von While End und funktioniert genauso.

Beispiele für VBA While-Schleifen

Lassen Sie uns einen tiefen Einblick in die Schritt-für-Schritt-Anleitung verschiedener VBA While-Schleifen geben.

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

Beispiel 1

VBA While-Wend-Schleife

Syntax:

Nehmen wir ein Beispiel, um dies besser zu sehen.

  • Definieren Sie eine Unterprozedur, um ein Makro unter einem neuen Modul zu erstellen.

Code:

 Sub WhileEx1 () End Sub 

  • Setzen Sie zwei Variablen Number auf One und Sum auf Zero.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 End Sub 

  • Setzen Sie eine while-Bedingung für die Variable Number.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 End Sub 

  • Fügen Sie Anweisungen hinzu, die für diese while-Bedingung ausgeführt werden sollen.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 End Sub 

  • Addieren Sie Debug.Print Sum, so dass die Summe der ersten 10 natürlichen Zahlen einzeln im Direktfenster gedruckt werden kann.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum End Sub 

  • Beenden Sie abschließend die While-Schleife mit der Wend-Anweisung.

Code:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum Wend End Sub 

  • Drücken Sie F5 oder Run Button, um diesen Code auszuführen und die Ausgabe zu sehen.

In diesem Code wird die Summenvariable auf Null gesetzt. Jedes Mal, wenn die Zahl um 1 erhöht wird, bis sie 10 erreicht (mithilfe der while-Schleife), addiert die Summenvariable die vorherige Summe mit der aktuellen Zahl und zeigt sie zeilenweise oder schrittweise unter dem Direktfenster an.

Beispiel # 2

VBA-Do-While-Schleife

Do-While-Schleife, wenn Bedingung aktiviert ist, bevor die Schleife startet

Es gibt zwei Möglichkeiten, wie eine do while-Schleife ausgeführt werden kann.

  • Sie können eine Bedingung hinzufügen, bevor die Schleife beginnt (entspricht der While-Wend-Schleife). Hier würde es keine Iteration der Schleife geben, wenn die Bedingung zum ersten Mal fehlschlägt.
  • Sie können die Bedingung am letzten Ende der Schleife hinzufügen, um sie zu überprüfen. In diesem Fall wird es mindestens eine Iteration der Schleife geben, bevor die Bedingung fehlschlägt.

Syntax:

Nehmen wir ein Beispiel, um die Dinge klarer zu machen.

  • Fügen Sie ein neues Modul ein und definieren Sie eine neue Unterprozedur, um ein Makro zu definieren.

Code:

 Sub WhileEx2 () End Sub 

  • Definieren Sie eine neue Variable I als Ganzzahl. Und initialisiere seinen Wert auf 1.

Code:

 Sub WhileEx2 () Dim i Dim Integer i = 1 End Sub 

  • Verwenden Sie Do-While, um eine Bedingung am Anfang der Schleife hinzuzufügen.

Code:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 End Sub 

  • Fügen Sie Anweisungen hinzu, die ausgeführt werden sollen, solange die Bedingung erfüllt ist. Fügen Sie dem Makro die folgende Codezeile hinzu.

Code:

 Sub WhileEx2 () Dim i Dim Integer i = 1 Do While i <= 10 Zellen (i, 1) .Value = i * i End Sub 

Diese Anweisung ermöglicht es der i-ten Zeile der ersten Spalte, den quadrierten Wert von Zahlen zu speichern.

  • Fügen Sie eine weitere Anweisung hinzu, die bei jeder Iteration der Schleife ein Inkrement von i um 1 zulässt.

Code:

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

  • Schließen Sie diese Schleife ab, indem Sie am Ende Ihres Codes die Anweisung Loop hinzufügen.

Sehen wir uns die Problemumgehung für diesen Code an:

Für die Werte von i von 1 (i = 1 anfangs) bis 10 berechnet es i * i (dh Quadratwert für jeden ganzzahligen Wert von i) und gibt ihn in die Zeilen 1 bis 10 von Spalte 1 (dh Spalte A) ein . Die Ausgabe ist nichts anderes als die quadrierten Werte der ganzen Zahlen 1 bis 10.

  • Führen Sie diesen Code aus, indem Sie die Taste F5 oder Ausführen drücken und die Ausgabe anzeigen.

Sie können die quadrierten Werte der natürlichen Zahlen 1 bis 10 sehen, die in jeder Zelle getrennt von Spalte A gespeichert sind.

Beispiel # 3

Do-While-Schleife, wenn die Bedingung am Ende der Schleife aktiviert ist

Syntax:

Schauen wir uns ein Beispiel an, um die Schleife besser zu sehen.

  • Fügen Sie ein neues Modul ein und definieren Sie eine neue Unterprozedur zum Speichern eines Makros.

Code:

 Sub WhileEx3 () End Sub 

  • Definieren Sie eine neue Ganzzahl i wie im vorherigen Beispiel und weisen Sie ihr einen Startwert zu.

Code:

 Sub WhileEx3 () Dim i Dim Integer i = 1 End Sub 

  • Verwenden Sie eine Do-Bedingung, um die Anweisungen hinzuzufügen, die ausgeführt werden sollen, solange die Bedingung wahr ist.

Code:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2) .Wert = i * ii = i + 1 End Sub 

Es wird empfohlen, Leerzeichen (Tabulatortaste) als Einrückung im obigen Code zu verwenden, damit der Code reibungslos ausgeführt werden kann und ein gutes Strukturformat für den Code definiert wird.

  • Verwenden Sie Loop while, um eine Bedingung hinzuzufügen, die für jede auszuführende Anweisung geprüft werden soll.

Code:

 Sub WhileEx3 () Dim i Dim Integer i = 1 Do Cells (i, 2) .Wert = i * ii = i + 1 Loop While i <= 10 End Sub 

  • Führen Sie diesen Code aus, indem Sie F5 oder die Schaltfläche Ausführen manuell drücken und die Ausgabe anzeigen.

Sie sehen die Ausgabe wie in der Abbildung oben gezeigt.

Wie funktioniert dieser Code im Backend?

Das System multipliziert den Wert von i (beginnend mit 1) mit sich selbst und speichert ihn in der zweiten Spalte (Zellen (i, 2)) für jede Zeile einzeln. Der Code stoppt die Ausführung, sobald der Wert der Variablen i 10 erreicht. Die Ausgabe kann identisch sein, was logischerweise bedeutet, dass beide Codes gleich funktionieren. Der Hauptunterschied besteht jedoch darin, den Code zu kompilieren. Im letzten Beispiel war die Bedingung bereits vorhanden, und das System wusste, bis zu welcher Nummer es gehen muss. In diesem Code kennt das System die Bedingung zum Zeitpunkt der Ausführung der Anweisungen jedoch nicht und führt die Iteration nacheinander aus. Solange die Bedingung falsch ist, wird der Code nicht mehr ausgeführt.

Dinge, die Sie über VBA While Loop wissen sollten

  • Die While-Wend-Schleife ist veraltet und soll nur mit älteren Codeversionen kompatibel sein. Sie sollten stattdessen eine Do-While-Schleife verwenden.
  • Die Do-While-Schleife ist flexibler und strukturierter als die While-Wend-Schleife.
  • Die Do-while-Schleife kann auf zwei Arten verwendet werden. In einem Fall können Sie zuerst die zu prüfende Bedingung und dann die die Bedingung erfüllenden Anweisungen hinzufügen. Auf andere Weise können Sie zuerst Anweisungen und später die zu prüfende Bedingung hinzufügen.
  • Es wird empfohlen, Einrückungen in Schleifen zu verwenden, damit der Code dynamischer und besser lesbar ist.

Empfohlene Artikel

Dies war ein Leitfaden für VBA Do While Loop. Hier haben wir die Verwendung von Excel VBA Do While Loop zusammen mit einigen praktischen Beispielen und einer herunterladbaren Excel-Vorlage besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. Wie verwende ich die FIND-Funktion in Excel?
  2. Wie verwende ich die VBA TRIM-Funktion?
  3. VBA-Arrays | Beende das Tutorial
  4. Wie verwende ich den VBA Select Case?

Kategorie: