您可以使用 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