#Excel VBA#解读(23):有限次的循环

 

介绍VBA中的For-Next循环结构。...



《完美Excel》微信公众账号:excelperfect

下面,该介绍VBA的循环语句结构了。这里,简要地谈谈有限次的循环结构,也就是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函数。

--------------------------------------

通过下列方式可以更快地了解完美Excel更新:

关注《完美Excel》微信公众账号:

方法1—点击右上角的按钮,选择“查看公众号”,点击关注

方法2—在添加朋友中搜索excelperfect

方法3—微信扫一扫下面网址中的二维码

http://www.excelperfect.com/wordpress/wp-content/uploads/2014/02/excelperfect.jpg

新浪微博名:完美Excel

个人博客:www.excelperfect.com

文章转载请注明出处!


    关注 完美Excel


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册