这里,简要地谈谈有限次的循环结构,也就是For-Next循环。还是先看一个例子。
这里,简要地谈谈有限次的循环结构,也就是For-Next循环。还是先看一个例子。
我们如果想要在工作表单元格区域A1:A10中依次填写数字1至10,可以使用下面的代码:
Sub ForNextTest1()
Dim i As Integer ‘声明整型变量i
‘使用循环为单元格填充数字
For i = 1 To 10
Cells(i, 1).Value = i
Next i
End Sub
运行后,当前工作表中单元格区域A1:A10会填充数字1至10。上述代码中,Cells(i, 1)代表第i行第1列的单元格,语句Cells(i, 1) = i将i的值放入第i行第1列的单元格中。
For-Next循环的基本语法结构如下:
For 计数变量=开始值 To 结束值 [step 步长]
[语句块]
[Exit For]
[语句块]
Next [计数变量]
说明:
按照惯例,方括号中的内容表示可选项。
步长可以是正值或者负值。正确地设置某个值,以满足特定的需求;若不设置,默认循环计数变量每次增加1,如上面的例子所示。
Exit For语句表示提前退出循环。
For-Next循环从计数变量设置的开始值开始,按步长增加计数变量值,直至达到结束值时终止循环。
将前面示例中的循环用框图表示如下:
下面的代码求1至100的和,并显示结果。
Sub ForNextTest2()
Dim sum As Integer ‘声明存储结果值的变量
Dim i As Integer ‘声明计数变量
sum = 0 ‘赋初值
For i = 1 To 100
sum = sum + i
Next i
MsgBox “1至100的和为:”& sum
End Sub
下面的代码求1至100之间的偶数和并显示结果。
Sub ForNextTest3()
Dim sum As Integer ‘声明存储结果值的变量
Dim i As Integer ‘声明计数变量
sum = 0 ‘赋初值
For i = 0 To 100 Step 2
sum = sum + i
Next i
MsgBox “1至100之间的偶数和为:”& sum
End Sub
其中,计数变量i的值从0开始,依次为2、4、6、8等,最后达到100。但是,在循环结束时,i的值为102。有兴趣的朋友可以添加一个语句,打印出循环结束后i的值。
我们使计数变量从100开始,让步长为负值递减,也可以得到同样的效果:
Sub ForNextTest4()
Dim sum As Integer ‘声明存储结果值的变量
Dim i As Integer ‘声明计数变量
sum = 0 ‘赋初值
For i = 100 To 0 Step -2
sum = sum + i
Next i
MsgBox “1至100之间的偶数和为:”& sum
End Sub
For-Next循环可以嵌套其他的For-Next循环。如下例所示,将当前工作表中的单元格区域A1:J10中的内容都填充为数字1。
Sub ForNextTest5()
Dim i As Integer ‘声明计数变量
Dim j As Integer ‘声明计数变量
For i = 1 To 10
For j = 1 To 10
Cells(i, j).Value = 1 ‘填充单元格
Next j
Next i
End Sub
下面的例子说明使用Exit For语句退出循环:
Sub ForNextTest6()
Dim i As Integer ‘声明计数变量
For i = 1 To 10
If Cells(i, 1).Value = 0 Then ‘判断单元格中的值为0
Exit For
End If
Next i
MsgBox “单元格A” & i& “中的值为0.”
End Sub
在单元格区域A1:A10中,如果某个单元格的值为0,则退出循环,并继续执行Next后面的语句,本例中是MsgBox函数。