Die While-Wend-Schleife in VBA

each3

Dieser Teil der Artikelserie um die VBA-Programmierung von Schleifen widmet sich den While-Wend-Schleifen. Letztendlich geht es auch hier darum, Verarbeitungsvorgänge automatisch zu wiederholen.

Die While-Wend-Schleife ist prinzipiell gleich der Do-While-Schleife. Unterschiede sollen hinsichtlich der Dauer des Programmdurchlaufs bestehen. Das aber dürfte bei einfachen Makros nicht spürbar sein.

Die Syntax lautet so:   While <Ausdruck>

Eine Wend Schleife wird solange durchlaufen, bis der <Ausdruck> ‘falsch’ ergibt. Wichtig zu wissen ist, dass wenn der erste Test ‘falsch’ ergibt, gelangt die Programmausführung niemals zum Programmcode innerhalb der Schleife und überspringt diesen Teil.

Ein erstes Beispiel dazu:

Eine Variable soll um den Wert 1 erhöht werden, solange nicht 20 erreicht ist.

Sub WhileWend1()
Dim intZahl As Integer
intZahl=0
While intZahl <20
intZahl=intZahl+1
Wend
End Sub

Lässt Du dieses Programm laufen, bekommst Du das Ende nicht mit, denn es erfolgt keine Werteausgabe und keine Mitteilung über eine MsgBox.

Es soll daher ein Wert in eine Zelle ausgegeben werden, wenn die 19 erreicht ist.

Sub WhileWend2()
Dim intZahl As Integer
intZahl=0
While intZahl <20
intZahl=intZahl+1
If intZahl=19 Then
Range(“D407″)=”Grenzwert!”
End If
Wend
End Sub

WhileWend1

Im nächsten Beispiel soll eine Variable erhöht werden, solange die andere Variable einen bestimmten Wert hat. Ist der Grenzwert erreicht, soll er um 5 erhöht werden. Über eine MsgBox soll darüber informiert werden.

Sub WhileWend3()
Dim intA As Integer
Dim intB As Integer
intA=15
intB=0
While intA=15
intB=intB+1
If intB=15 Then
intA=20
MsgBox (“Die Variable intA wurde auf “& intA &” erhöht!”)
End If
Wend
End Sub

WhileWend2

Die MsgBox zeigt: “Die Variable intA wurde auf 20 erhöht!”.

Im nächsten Beispiel erhältst Du nach jedem Schleifendurchlauf eine Mitteilung über die Nr. des Durchlaufs.

Sub WhileWend4()
Dim intZahl As Integer
intZahl = 0
While intZahl <> 5
MsgBox “While-Schleife: ” & intZahl
intZahl = intZahl + 1
Wend
End Sub

Abschließend zu While-Wend noch zwei verschachtelte Schleifen.

Sub WhileWend5()
Dim intZahl1 As Integer
Dim intZahl2 As Integer
intZahl1 = 1
intZahl2 = 5
While intZahl1 < 7
While intZahl2 < 10
MsgBox (intZahl1 & “-” & intZahl2)
intZahl2 = intZahl2 + 1
Wend
intZahl2 = 6
intZahl1 = intZahl1 + 1
Wend
End Sub

Zwei Variablen werden Werte zugewiesen. Es gibt eineäußere und eine innere Schleife. Die äußere Schleife achtet darauf, dass die Variable intZahl1 kleiner als 7 ist, bei 7 ist das Programm zuende. Die innere Schleife achtet darauf, dass die Variable intZahl2 kleiner als 10 ist. Mit einer MsgBox wird die Verkettung von intZahl1 und intZahl2 angezeigt.

Zuerst wird also 1-5 angezeigt.
Dann 1-6, dann 1-7, dann 1-8 und schließlich 1-9.
Jetzt erhöht sich intZahl1 auf 2 und gleichzeitig intZahl2 auf 6, so wird angezeigt:
2-6, dann 2-7, dann 2-8, dann 2-9. Das Gleiche passiert mit intZahl1 von 3 bis 6.

WhileWend3

Schreib Dir den Code am Besten in Dein Modul im VBA-Editor und klicke Dich durch.

2 Gedanken zu „Die While-Wend-Schleife in VBA“

Schreibe einen Kommentar

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

WordPress Cookie Plugin von Real Cookie Banner