For...Next
重复执行语句块,直到指定的值超出范围。
语法:For counter = start To end [ Step step ] [ statements ] [ Continue For ] [ statements ] [ Exit For ] [ statements ] Next [ counter ]
counter : 必需。用作循环计数器的数值变量。counter参数不能是Boolean或数组元素。
start : 必需。counter的初始值。
end : 必需。counter的最终值。
step : 可选。counter每次增加的量。如果未指定,则step默认为1。
statements : 可选。在For和Next之间的一个或多个语句,对counter的每个值执行。
For...Next语句的语法包含以下部分:
For...Next语句通过使用计数器重复语句块,每次重复时将计数器的当前值与结束值进行比较。第一次输入循环时,start被分配给counter。每次重复时,counter都会增加step的值,然后与end进行比较。如果counter大于end(或小于end,如果step为负),则Next语句将控制权转移到紧跟在Next后面的语句。否则,循环内的语句将执行。
如果在循环内更改counter的值,将使循环的执行更加复杂,并可能导致意外的结果。
如果要在循环中跳过一次迭代,请在For...Next语句中使用Continue For语句。
如果要在满足特定条件时退出循环,请在For...Next语句中使用Exit For语句。
可以在For...Next语句中嵌套最多64个For...Next循环。但是,每个Next语句必须引用前面的For语句中声明的计数器变量。如果在嵌套的For...Next循环中包含counter参数,则应指定最内层的counter。
示例
此示例显示如何使用For...Next语句。
Sub ForNextExample()
Dim Counter As Integer
For Counter = 1 To 10
MsgBox "计数器值: " & Counter
Next Counter
End Sub使用Step
可以使用Step关键字指定计数器每次增加的量:
Sub ForStepExample()
Dim Counter As Integer
' 每次增加2
For Counter = 2 To 20 Step 2
MsgBox "偶数: " & Counter
Next Counter
' 使用负Step递减
For Counter = 10 To 1 Step -1
MsgBox "倒计时: " & Counter
Next Counter
End Sub嵌套循环
可以在For...Next语句中嵌套其他循环:
Sub NestedForExample()
Dim i As Integer, j As Integer
For i = 1 To 3
For j = 1 To 3
MsgBox "i = " & i & ", j = " & j
Next j
Next i
End SubNOTE
当在For...Next循环内使用Exit For时,控制将立即转移到紧跟在Next语句后面的语句。