我们如果想要在工作表单元格区域A1:A10中依次填写数字1至10,可以使用下面的代码:
S...
这里,简要地谈谈有限次的循环结构,也就是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 ‘声明计数变量
Excel VBA Select Case结构
人生经常要面临“多选一”的情况,在编写程序代码时也是如此。在上篇文章中,我们讲解了使用If-Then结构来进行判断,也举了很多个小例子。我们看到,随着条件的增多,代码的结构也变得复杂或难以理解。幸运的是,VBA为我们提供了Select Case结构,让我们根据多个条件判断选择时,能够写出容易理解的代码。 上篇文章的结
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函数。
向左走,向右走——使用If语句选择
在日常生活中,我们常常要做出选择,例如,如果明天不下雨,我们就去郊游。在VBA中,也有类似的语句,让我们控制程序的执行方向,例如,如果单元格A1的值为0,那么就弹出警告消息“单元格A1的值不能为0”。 将上面的描述用语句来表达,如下图所示: VBA中If-Then语句结构的基本语法如下: If 条件 Then