Die Do-While-Schleife in VBA

DoWhile2

Das heutige Thema ist die Do-While-Schleife. Diese Schleifenart ähnelt in gewissem Sinne der Do-Loop-Schleife, denn zu Beginn des Makros steht auch hier nicht fest, wieviel Durchläufe erforderlich sind.

Um keine Endlosschleifen zu erzeugen, müssen auch bei der Do-While-Schleife Bedingungen gesetzt werden. Das Befehlswort dafür ist hier While. Das Befehlswort kann sowohl hinter Do als auch hinter Loop die Bedingungen einleiten.

    Die Do-While-Schleife tut etwas, solange die Bedingung WAHR ist. Sie ist damit so etwas wie eine logische Funktion, die auf WAHR oder FALSCH basiert.

    Es gibt nun zwei Möglichkeiten. Entweder steht der Befehl While unmittelbar hinter Do oder While steht weiter unten im Makro hinter Loop.

    Gleich ein Beispiel, While steht am Anfang, hinter Do: In einer Do-While-Schleife soll eine Namensliste abwärts geprüft werden bis der Name „Harry“ erreicht ist.

    DoWhile1

    Du gehst wieder in den VBA-Editor (mit Alt+F11) und suchst ein Modul auf. Nun schreibst Du z.B. dieses kleine Makro:

    Sub DoWhile1()

    Dim intRow As Integer

    intRow=270

    Do While Cells(intRow,7).Value<>“Harry“

    intRow=intRow+1

    Loop

    MsgBox („Suchbegriff wurde in Zelle “ & Cells(intRow,7).Address & “ gefunden!“)

    End Sub

    Die MsgBox wirft richtig die Meldung „Suchbegriff wurde in Zelle $G$277 gefunden!“ aus.

    Im nächsten Beispiel, While steht am Ende, hinter Loop, soll die Schleife ausgeführt werden, solange in der Namensliste nicht der Name Lars erreicht ist. Eine MsgBox teilt mit, dass bis Zelle … der Name Lars nicht gefunden wurde.

    Dies ist die Liste:

    DoWhile2

    Und so sieht das Makro aus:

    Sub DoWhile2()

    Dim intRow As Integer

    intRow=287

    Do

    intRow=intRow+1

    Loop While Cells(intRow,7).Value <>“Lars“

    MsgBox („Bis Zelle “ & Cells(intRow-1,7).Address & “ wurde der Name Lars nicht gefunden!“)

    End Sub

    Die Mitteilung der MsgBox lautet: „Bis Zelle $G$295 wurde der Name Lars nicht gefunden!“


    Entdecke mehr von Clevercalcul

    Melde dich für ein Abonnement an, um die neuesten Beiträge per E-Mail zu erhalten.

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    WordPress Cookie Plugin von Real Cookie Banner