Excel VBA-Do-Until-Schleife

Die Funktion "Do till loop" wiederholt die Anweisungen so lange, bis die Bedingung / das Kriterium WAHR wird. Die Anweisungen werden ausgeführt, solange die Bedingungen FALSE sind. Sobald die Bedingung / das Kriterium TRUE wird, wird die Schleife beendet. Dies kann im Gegensatz zur Do While-Schleife gesehen werden, bei der die Schleife ausgeführt wird, solange die Kriterien WAHR sind, und beendet wird, sobald die Kriterien FALSCH sind.

Siehe das Flussdiagramm unten, in dem die Arbeitsweise der Do Until-Schleife erläutert wird:

Syntax der Do Until-Schleife in Excel VBA

Do Until Loop hat in Excel VBA zwei Arten von Syntax.

Syntax 1:

 Do Until (Bedingung) (auszuführende Anweisungen) Schleife 

Syntax 2:

 Do (auszuführende Anweisungen) Schleife bis (Bedingung) 

Der grundlegende Unterschied zwischen diesen beiden Syntaxen besteht in der Ausführung. In der ersten Syntax prüft die Schleife immer, ob die Bedingung wahr oder falsch ist. Wenn es falsch ist, wird die Schleife erneut wiederholt. Sobald die Bedingung / das Kriterium erfüllt ist, wird die Schleife beendet. In diesem Fall besteht die Möglichkeit, dass die Schleife bei der ersten Iteration selbst beendet wird (wenn die Bedingung wahr ist). Daher erhalten Sie in diesem Fall keine Ausgabe. In der zweiten Syntax führt die Schleife jedoch zunächst die Anweisungen aus und prüft dann, ob die Bedingung wahr oder falsch ist. Wenn die Bedingung "False" ist, werden erneut die gleichen Anweisungen ausgeführt und auf die Bedingung geprüft. Wenn die erste Iteration selbst die Bedingung True angibt, wird diese Schleife beendet, aber zuvor wird eine Anweisung ausgeführt. In diesem Fall erhalten wir mindestens eine Iteration (als Null-Ausgabe).

Schließlich ist die Ausgabe der beiden Codes gleich. Die Ausführung ist jedoch etwas, das diese beiden unterscheidet.

Beispiel für eine Excel VBA Do Until-Schleife

Sehen wir uns die Beispiele für Do Until Loop in Excel VBA an.

Sie können diese VBA-Do-Until-Loop-Excel-Vorlage hier herunterladen - VBA-Do-Until-Loop-Excel-Vorlage

Beispiel # 1 - VBA Do Until Loop, wenn die Bedingungen zu Beginn überprüft werden

Führen Sie die folgenden Schritte aus, um die Do Until-Schleife in Excel VBA anzuwenden.

Schritt 1: Fügen Sie unter Visual Basic Editor (VBE) ein neues Modul ein, um Code schreiben zu können.

Schritt 2: Definieren Sie eine Unterprozedur, in der der zu schreibende Makrocode gespeichert werden kann.

Code:

 Sub Do_Until_Ex1 () End Sub 

Schritt 3: Definieren Sie eine neue Variable "X" mit dem Datentyp "Long". Diese Variable kann als Bedingung / Kriterium in der Do Until-Schleife verwendet werden.

Code:

 Sub Do_Until_Ex1 () Dim X As Long End Sub 

Schritt 4: Setzen Sie den Anfangswert für die Variable X auf 1.

Code:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 End Sub 

Schritt 5: Starten Sie die Schleife mit den Schlüsselwörtern "Ausführen bis".

Code:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Until End Sub 

Schritt 6: Geben Sie die Kriterien als X = 11 unter Fertig bis an. Dies ist eine Bedingung, unter der die Schleife unterbrochen werden kann, wenn True ist. Dies bedeutet, dass die Schleife ausgeführt wird, bis der Wert von X = 11 ist. Sobald der Wert für X gleich 11 ist, wird die Schleife beendet.

Code:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Bis X = 11 End Sub 

Schritt 7: Verwenden Sie jetzt VBA-Zellen. Wertfunktion, um das Quadrat jeder Zahl bis X unter der ersten Spalte hinzufügen zu können.

Code:

 Sub Do_Until_Ex1 () Dimme X solange X = 1 mache bis X = 11 Zellen (X, 1) .Value = X * X End Sub 

Schritt 8: Wieder müssen wir das Inkrement in X um 1 setzen, so dass jedes Mal, wenn die Schleife ausgeführt und die Bedingung überprüft wird, zur nächsten Zahl übergegangen wird und ein quadratischer Wert davon in der entsprechenden Zelle bis zur Nummer 11 gespeichert wird.

Code:

 Sub Do_Until_Ex1 () Dimme X solange X = 1 mache bis X = 11 Zellen (X, 1) .Wert = X * XX = X + 1 End Sub 

Schritt 9: Schließen Sie diese Do-Until-Schleife ab, indem Sie das Schlüsselwort „Loop“ am Ende des Codes eingeben.

Code:

 Sub Do_Until_Ex1 () X dimmen, solange X = 1 bis X = 11 Zellen (X, 1) .Value = X * XX = X + 1 Loop End Sub 

In diesem Code wollten wir quadrierte Werte für Zahlen von 1 bis 11 haben (sobald ein Wert 11 ist, endet die Schleife). Unter jeder Zelle der Excel-Tabelle (bis zur Zellennummer 11) werden die Werte gespeichert. Inkrementieren von 1 Einheit ermöglicht es, eine Zahl jedes Mal um 1 im vorherigen Wert von X zu erhöhen, und der quadrierte Wert dieser Zahl wird in die entsprechende Zelle gedruckt. Beispielsweise wird der quadrierte Wert für 3 unter der dritten Zelle des aktiven Excel-Blatts gedruckt. Diese Schleife läuft so lange, wie X ungleich 11 ist. Daher erhalten wir in Zelle A1 bis Zelle A10 die quadrierten Werte der Zahl beginnend von 1 bis 10 (bei Schleife 11 beendet).

Schritt 10: Klicken Sie auf die Schaltfläche Ausführen oder drücken Sie die Taste F5, um diesen Code auszuführen und die Ausgabe anzuzeigen.

Beispiel 2 - Do Until-Schleife, wenn die Bedingungen am Ende der Schleife überprüft werden

Führen Sie die folgenden Schritte aus, um die Do Until-Schleife in Excel VBA anzuwenden.

Schritt 1: Definieren Sie eine neue Subprozedur unter VBE-Modul.

Code:

 Sub Do_Until_Ex2 () End Sub 

Schritt 2: Definieren Sie eine Variable "Y" mit dem Datentyp "Long". Diese Variable ist nützlich, um die Bedingungen in einer Schleife aufzurufen.

Code:

 Sub Do_Until_Ex2 () Dim Y As Long End Sub 

Schritt 3: Setzen Sie den Anfangswert der Variablen "Y" auf 1.

Code:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 End Sub 

Schritt 4: Fügen Sie die Do-Bedingung hinzu, indem Sie in der nächsten Zeile Do eingeben, nachdem Sie den Anfangswert von Y auf 1 gesetzt haben.

Code:

 Sub Do_Until_Ex2 () Dim Y Solange Y = 1 Do End Sub 

Schritt 5: Fügen Sie unter Do-Schleife den Code hinzu, den Sie ausführen möchten. Hier nehmen wir dasselbe Beispiel wie oben (es wird uns helfen, herauszufinden, wie die Ausgaben identisch sind, aber die Kompilierungen für zwei dieser Codes unterschiedlich sind).

Code:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Beispiel 2"). Cells (Y, 1) .Value = Y * Y End Sub 

Schritt 6: Nach jeder Iteration der Schleife soll der Wert um 1 Einheit erhöht werden. Legen Sie dazu einen Befehl unter Do fest.

Code:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Beispiel 2"). Cells (Y, 1) .Value = Y * YY = Y + 1 End Sub 

Schritt 7: Fügen Sie eine abschließende Anweisung für diese Schleife mit einem Schlüsselwort als "Schleife" hinzu.

Code:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Beispiel 2"). Cells (Y, 1) .Value = Y * YY = Y + 1 Loop End Sub 

Warten Sie mal! Es gibt noch etwas mehr. Sie müssen die till-Kriterien / -Bedingung unter dieser Schleife, diesmal nach dem Loop-Schlüsselwort, hinzufügen. Dadurch kann der Compiler die Bedingung am Ende der Schleife überprüfen.

Schritt 8: Addiere bis Y = 11 als Bedingung nach dem Loop-Schlüsselwort.

Code:

 Sub Do_Until_Ex2 () Dimme Y solange Y = 1 mache Blätter ("Beispiel 2"). Zellen (Y, 1) .Wert = Y * YY = Y + 1 Schleife bis Y = 11 End Sub 

Schritt 9: Führen Sie diesen Code aus, indem Sie die Taste F5 oder Ausführen drücken, und sehen Sie die Magie unter dem Blatt "Beispiel 2".

Wie funktioniert dieser Code?

Das System quadriert jedes Mal bis zum Wert von Y in der Schleife und speichert ihn zeilenweise in der zweiten Spalte des Blattes mit dem Namen "Beispiel 2". Nach jeder Iteration wird der aktuelle Wert von Y um 1 Einheit erhöht und der aktualisierte Wert wird quadriert und gespeichert. Solange der Wert kleiner als der Kriteriumswert ist (Y = 11), wird der Code das Quadrat machen und es speichern. Sobald der Wertecompiler den Wert Y = 11 erreicht, beendet er die Ausführung des Codes und beendet diesen.

Beide Codes geben eine ähnliche Ausgabe aus, aber logischerweise gibt es Unterschiede bei den Kompilierungen für beide. In der ersten Art von Code wird die Bedingung am Anfang der Schleife überprüft. Wenn sie falsch ist, beginnt nur die Schleife, den nächsten Ausdruck auszuwerten. Im zweiten Beispiel beginnt der Code jedoch mit der Ausführung der Schleife und der Ausführung von Do-Anweisungen am Anfang (Speichern der Werte in einem Pufferspeicher für die Ausführungsanweisungen). Am Ende der Schleife legt der Compiler ein Kriterium fest und überprüft es mit dem Pufferwert.

Dinge, an die man sich erinnern sollte

  • VBA Do Until ist genau der umgekehrte Fall von Excel VBA Do While. Die VBA-Do While-Schleife wird ausgeführt, solange die Bedingung TRUE ist. Sobald die Bedingung FALSE ist, wird die Do While-Schleife beendet. Auf der anderen Seite wird VBA Do Until ausgeführt, solange die Bedingung FALSE ist. Sobald die Bedingung TRUE ist, wird die Schleife beendet.
  • Es gibt zwei Vorgehensweisen, bei denen die Bedingung am Anfang der Schleife und die Bedingung am Ende der Schleife überprüft wird.

Empfohlene Artikel

Dies ist eine Anleitung zu VBA Do Until Loop. Hier diskutieren wir die Verwendung von Excel VBA Do Until Loop zusammen mit einigen praktischen Beispielen und einer herunterladbaren Excel-Vorlage. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA While-Schleife
  2. LOOKUP-Formel in Excel
  3. Vollständige Tutorials zu VBA-Loops
  4. Nachschlagetabelle in Excel

Kategorie: