使用 For...Next

可以使用 For...Next 语句将语句块运行特定次数。对于循环,使用其值随循环的每次重复而增大或减小的计数器变量。

以下示例将使名为 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。完成循环后,total 为 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。完成循环后,total 为 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