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