對於迴圈
For
迴圈用於重複封閉的程式碼段給定次數。以下簡單示例說明了基本語法:
Dim i as Integer 'Declaration of i
For i = 1 to 10 'Declare how many times the loop shall be executed
Debug.Print i 'The piece of code which is repeated
Next i 'The end of the loop
上面的程式碼宣告瞭一個 Integer i
。For
迴圈將 1 到 10 之間的每個值分配給 i
然後執行 Debug.Print i
- 即程式碼將數字 1 到 10 列印到立即視窗。請注意,迴圈變數由 Next
語句遞增,即在所包含的程式碼執行之後,而不是在執行之前。
預設情況下,每次迴圈執行時計數器將遞增 1。但是,可以指定 Step
將增量的數量更改為函式的文字或返回值。如果起始值,結束值或 Step
值是浮點數,則將四捨五入到最接近的整數值。Step
可以是正值或負值。
Dim i As Integer
For i = 1 To 10 Step 2
Debug.Print i 'Prints 1, 3, 5, 7, and 9
Next
通常,For
迴圈將用於在迴圈開始之前已知多少次執行封閉程式碼的情況(否則 Do
或 While
迴圈可能更合適)。這是因為退出條件在第一次進入迴圈後被修復,因為此程式碼演示了:
Private Iterations As Long 'Module scope
Public Sub Example()
Dim i As Long
Iterations = 10
For i = 1 To Iterations
Debug.Print Iterations 'Prints 10 through 1, descending.
Iterations = Iterations - 1
Next
End Sub
使用 Exit For
語句可以提前退出 For
迴圈:
Dim i As Integer
For i = 1 To 10
If i > 5 Then
Exit For
End If
Debug.Print i 'Prints 1, 2, 3, 4, 5 before loop exits early.
Next