对于循环
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