对于循环

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 iFor 循环将 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 循环将用于在循环开始之前已知多少次执行封闭代码的情况(否则 DoWhile 循环可能更合适)。这是因为退出条件在第一次进入循环后被修复,因为此代码演示了:

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