"For...Next" verwenden

Sie können "For...Next"-Anweisungen verwenden, um einen Anweisungsblock so oft wie angegeben auszuführen. Verwenden Sie für Schleifen eine Zählervariable, deren Wert mit jeder Wiederholung der Schleife zu- oder abnimmt.

Im folgenden Beispiel wird eine Prozedur namens MyProc 50 Mal ausgeführt. Die For-Anweisung gibt die Zählervariable x und ihre Start- und Endwerte an. Die Next-Anweisung erhöht die Zählervariable um 1.

Die folgenden Beispiele veranschaulichen die Verwendung der "For...Next"-Schleife:

Beispiel 1:

Sub DoMyProc50Times()
   Dim x
   For x = 1 To 50
      'This loop executes 50 times
   Next
End Sub

Mit dem Schlüsselwort Step können Sie die Zählervariable um den angegebenen Wert erhöhen oder verringern. Im folgenden Beispiel wird die Zählervariable "j" bei jeder Wiederholung der Schleife um 2 erhöht. Wenn die Schleife beendet ist, ist die Gesamtsumme die Summe von 2, 4, 6, 8 und 10.

Beispiel 2:

Sub TwosTotal()
Dim j, total
    total = 0
    For j = 2 To 10 Step 2
        total = total + j
    Next
 'The total is 30
End Sub

Um die Zählervariable zu verringern, verwenden Sie einen negativen Wert für "Step". Sie müssen einen Endwert angeben, der kleiner als der Startwert ist. Im folgenden Beispiel wird die Zählervariable "myNum" bei jeder Wiederholung der Schleife um 2 verringert. Wenn die Schleife beendet ist, ist die Gesamtsumme die Summe von 16, 14, 12, 10, 8, 6, 4 und 2.

Beispiel 3:

Sub NewTotal()
   Dim myNum, total
    total = 0
    For myNum = 16 To 2 Step -2
        total = total + myNum
    Next
    'The total is 72
End Sub

Sie können jede "For...Next"-Anweisung beenden, bevor der Zähler seinen Endwert erreicht, indem Sie die "Exit For"-Anweisung verwenden. Da Sie die Anweisung in der Regel nur in bestimmten Situationen beenden möchten, z.B., wenn ein Fehler auftritt, sollten Sie die "Exit For"-Anweisung im True-Anweisungsblock einer "If...Then...Else"-Anweisung verwenden. Wenn die Bedingung "False" ist, wird die Schleife wie gewohnt ausgeführt.

Beispiel 4:

Sub ExitForExample()
        Dim i, total
        total = 0
        For i = 1 To 10
                        total = total + i
                 If i = 5 Then Exit For
        Next
        'Exited loop early. Total is 15
End Sub

Beispiel 5:

Sub DecreaseWithExit()
        Dim n, sum
        sum = 0
        For n = 20 To 0 Step -2
                        sum = sum + n
                        If n = 10 Then Exit For
        Next
         'Exited loop early. sum is 90
End Sub