使用 For...Next

您可以使用 For...Next 陳述式,以特定次數執行陳述式區塊。For 迴圈使用計數器變數,其值會隨著迴圈每次重複而增加或減少。

下列範例會讓名為 MyProc 的程序執行 50 次。For 陳述式會指定計數器變數 x 及其開始和結束值。Next 陳述式則會將計數器變數遞增 1。

下列範例說明 For...Next 迴圈的用法:

範例 1

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

您可以使用 Step 關鍵字,依您指定的值增加或減少計數器變數。在下列範例中,計數器變數 j 會在迴圈每次重複時遞增 2。當迴圈完成時,總和為 2、4、6、8 和 10。

範例 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

若要減少計數器變數,請使用負的 Step 值。您必須指定小於開始值的結束值。在下列範例中,計數器變數 myNum 會在迴圈每次重複時減少 2。當迴圈完成時,總和為 16、14、12、10、8、6、4 和 2。

範例 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

您可以使用 Exit For 陳述式,在計數器達到其結束值之前,結束任何 For...Next 陳述式。因為通常只會在特定情況下 (例如發生錯誤時) 需要結束,所以應在 If...Then...Else 陳述式的 True 陳述式區塊中使用 Exit For 陳述式。如果條件為 False,則迴圈會照常執行。

範例 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

範例 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