Do Loop Schleife in Excel VBA
In diesem Tutorial zeige ich Euch wie Ihr die Do Loop Schleife entweder mit While oder Until anwenden könnt. Die Do Loop Schleife mit While wird solange ausgeführt solange die Bedingung stimmt. Die Do Loop Schleife mit Until wird solange ausgeführt solange die Bedingung noch nicht stimmt. Sie wird erst verlassen wenn die Bedingung stimmt.
Das Startvideo der VBA Tutorial Serie auf YouTube findet Ihr hier
Die Playlist meiner VBA Tutorial Serie auf YouTube findet Ihr hier
Achtung:
Benutzt zum Üben eine separate Tabelle für Testzwecke oder eine Kopie des Originals damit Euch keine Daten verloren gehen.
Video zu diesem Tutorial:
Beispielscript mit der Do Loop Schleife mit While
Im nachfolgenden Excel VBA Script zeige ich Euch wie Ihr mit der Do Loop Schleife und While Zellen mit einem x markieren könnt. Hier wird in Spalte A über die If Anweisung geschaut ob der Wert in der Zelle 5 oder höher ist. Sollte das der Fall sein wird in der gleichen Zeile aber in Spalte B ein x eingetragen. Die Schleife selbst läuft von 1 bis 10. Die Variable x wurde im oberen Bereich auf 1 initialisiert. Im unteren Bereich wurde über die While Bedingung der maximale Wert auf 10 festgelegt.
Ich verwende zum Auslesen und eintragen Cells, welche 2 Parameter benötigt.
Cells(ZeilenNummer, SpaltenNummer)
Mit .Value und dem Zuweisungsoperator = können wir dann das x welches in Anführungszeichen stehen muss eintragen.
Achtung: Ihr müsst bei solchen Schleifen immer darauf achten dass Ihr daraus keine Endlosschleife macht. Deshalb ist es ratsam mit der Taste F8 die Schleife erst einmal Schrittweise auszuführen um zu sehen ob die Schleife zum erhofften Schluss auch verlassen wird.
Sub DoWhileTutorial() x = 1 Do If (Cells(x, 1) >= 5) Then Cells(x, 2).Value = "x" End If x = x + 1 Loop While x <= 10 End Sub
Beispielscript mit der Do Loop Schleife und Until
Die Do Loop Schleife mit Until wird solange durchlaufen solange die Bedingung noch nicht erfüllt ist. Sollte die Bedingung erfüllt werden wird die Schleife verlassen.
In dem nachfolgenden Beispielen Wird in den Zellen von Spalte A die Zahlen 1 bis 10 eingetragen. x ist am Anfang auf 1 initialisiert worden und wird in der Schleife bei jedem Durchlauf um eins erhöht. Damit erreichen wir dass über Cells, welches das x als ersten Parameter hat, bei jedem Durchlauf in die nächste Zeile geschrieben wird. Der zweite Parameter von Cells ist die Spaltennummer, deshalb wird alles in Spalte A eingetragen.
Am Ende der Loop Schleife erreichen wir mit Until dass die Schleife in dem Moment beendet wird, sobald x größer als 10 ist.
Sub DoUntilTutorial() x = 1 Do Cells(x, 1).Value = x x = x + 1 Loop Until x > 10 ' Wird solange ausgeführt bis diese Bedingung stimmt End Sub
Beispielscript mit der Do Loop Schleife und Until sowie If Block
Das zweite Beispiel mit der Do Loop Schleife ist so aufgebaut dass diesmal die Zellen in Spalte A von 1 bis 10 durchlaufen werden. Es wird überprüft ob der Wert in der Zelle größer gleich 5 ist. Sollte das der Fall sein wird rechts daneben ein x eingetragen, denn hier ist in der If Abfrage der zweite Parameter von Cells 2.
Die Schleife wird durch Until wieder beendet sobald der Wert von x größer 10 ist. Das passiert direkt nach dem letzten Eintrag von 10 über Cells(x, 2).Value = "x" und der anschließenden Erhöhung von x=x+1 direkt danach. Da der Wert dann 11 ist, wird die Schleife verlassen.
Sub DoUntilTutorial2() x = 1 Do If (Cells(x, 1) >= 5) Then Cells(x, 2).Value = "x" End If x = x + 1 Loop Until x > 10 ' Wird solange ausgeführt bis diese Bedingung stimmt End Sub
Das könnte Dich auch interessieren
- Auf Zellen zugreifen mit Cells in Excel VBA
- Eine eigene Funktion erstellen ganz einfach (Excel)
- Entwicklertools anzeigen (Microsoft Excel)
- Excel VBA Kommentare schreiben
- If Then Else in Excel VBA
- Makro ausführen mit Button in Excel VBA
- MsgBox in Excel VBA
- Option Explicit benutzen oder nicht in Excel VBA
- Prozedur in Arbeitsmappe, Tabelle oder Modul?
- Select Case Verzweigung in Excel VBA
- Start der Excel VBA Tutorial Reihe
- Tabellennamen in Tabelle eintragen in Excel VBA
- Zeilenumbruch bei längeren VBA Codezeilen
- Zellen von anderer Tabellen kopieren mit Excel VBA