第一部分:for next循环语句用法和理解
VBA中for循环语句是程序流程控制语句。For Next 循环语句是编程中几乎不可缺少的语句。
什么是循环语句呢?循环语句就是指重复地执行语句块。
理解for next循环语句,有一个经典的解释。两万米长跑比赛,每圈400米。一圈,两圈,三圈......直到跑满50圈才停止。就是在循环地在跑道上执行跑步的动作。
for next循环语句的句式如下:
For 循环变量=初值 to 终值 step 步长
循环体1
[exit for]
循环体2
next 循环变量
for next循环语句句式理解:
从开始到结束,反复执行For和Next之间的指令块,除非遇到Exit For语句,将提前跳出循环。
其中,步长和Exit For语句以及Next后的循环变量均可省略,步长省略的时候默认为1。
Exit for 语句是强制终止循环的语句,执行它后将退出循环,执行next后面的语句。
对for next循环语句句式进行了初步的认识后,用这个句式来叙述上面跑步的问题,将其编成程序,20000米,要跑50圈,也就是要50次,跑1圈,2圈。。。。直到满50圈才停止循环跑步,当然,如果要提前退赛,就不用跑满50圈了。for next循环语句程序可以写成:
Sub 循环跑步()
dim 圈数 as byte
for 圈数=1 to 50 step 1
If 学生.要求=退赛
exit for
End If
Next 圈数
End Sub
这不是一个完整的程序,只是帮助对For next循环语句的理解而已。
第二部分:for next循环语句实例练习
1.从A1单元格开始,对角线生成1-20的数字。要求:用一段fox next循环语句程序生成。
代码如下:
Sub 循环()
Dim a As Byte
For a = 1 To 20 Step 1
Cells(a, a) = a
Next a
End Sub
代码解释:
sub 和end sub之间是一个过程
Dim a As Byte:申明变量a的类型为byte。如果省略此句,不做申明,变量将被指定为Variant类型,因为VBA中默认的数据类型是Variant。
关于变量类型,参考《excel中vba变量类型小结》
下面的For next是VBA中for next循环语句。
for next循环语句的句式如下:
For 循环变量=初值 to 终值 step 步长
循环体1
[exit for]
循环体2
next 循环变量
Cells(行,列) 表示单元格地址。
上面的代码,按F8键,逐语句测试,如下图所示:
For next循环语句第一次循环结束,得到结果A1为1。就是变量a第一次的值为1,将值套进单元格就是cells(1,1)=1,所以A1为1。
继续按F8键,第二次到next a时,B2为1。这时变量a第二次循环的值为2,将值套进单元格就是cells(2,2)=2,所以B2为2。
以此类推,继续循环下去,直到变量a的终止值20,结束循环。
下面这段代码的运行结果等同于上面的代码:
Sub 循环()
For a = 1 To 20
Cells(a, a) = a
Next
End Sub
2.1到100的自然数和
代码如下:
Sub 求和()
Dim a As Long, i As Integer
For i = 1 To 100 Step 1
a = a + i
Next i
MsgBox "1到100的自然数和:" & a
End Sub
解释:先申明变量类型,然后是一个for next循环体,i的值为1到100,变量a的值为a+i,然后用消息框输出循环之后a的结果值。