Do……Loop循环是一种控制循环次数未知的循环结构,应用在很多计算和工作表的处理过程中,本篇介绍Do……Loop循环的基础用法。
操作步骤:
1、新建Excel文件,文件打开后按ALT F11进入VBE界面。
2、插入——模块,然后将本文蓝色部分代码复制到编码器窗口。
3、在Excel工作表界面,ALT F8,选择对应代码就可以测试循环了。
一、Do…Loop语句的语法
1、Do While-Loop
开始执行前判断条件,当逻辑表达式的值为True时,使用While关键字执行循环体,直到逻辑表达式的值为False时跳出循环体。
Do While <逻辑表达式>]
<循环体>
Loop
示例1
Sub Do循环1()
Dim myRow As Long
myRow = 1
‘当myRow小于等于5时循环,否则就退出循环。
Do While myRow <= 5
Cells(myRow, 3).Value =Cells(myRow, 1).Value * Cells(myRow, 2).Value
myRow = myRow 1
Loop
End Sub
2、Do Loop-While
执行1次后判断条件,当逻辑表达式的值为True时,使用While关键字执行循环体,直到逻辑表达式的值为False时跳出循环体。
Do
<循环体>
Loop While <逻辑表达式>
示例2
Sub Do循环2()
Dim myRow As Long
myRow = 1
Do
Cells(myRow, 3).Value =Cells(myRow, 1).Value * Cells(myRow, 2).Value
myRow = myRow 1
Loop While myRow<=5
‘当myRow小于等于5时循环,否则就退出循环。
End Sub
3、Do Until-Loop
开始执行前判断条件,当逻辑表达式的值为False时,使用Until关键字执行循环体,直到逻辑表达式的值为True时跳出循环体。
Do Until <逻辑表达式>]
<循环体>
Loop
示例3
Sub Do循环3()
Dim myRow As Long
myRow = 1
‘当myRow大于5时循环退出循环。
Do Until myRow>5
Cells(myRow, 3).Value =Cells(myRow, 1).Value * Cells(myRow, 2).Value
myRow = myRow 1
Loop
End Sub
4、Do Loop- Until
执行1次后判断条件,当逻辑表达式的值为False时,使用Until关键字执行循环体,直到逻辑表达式的值为True时跳出循环体。
Do
<循环体>
Loop Until <逻辑表达式>
示例4
Sub Do循环4()
Dim myRow As Long
myRow = 1
Do
Cells(myRow, 3).Value =Cells(myRow, 1).Value * Cells(myRow, 2).Value
myRow = myRow 1
Loop Until myRow>5
‘当myRow大于5时循环退出循环。
End Sub
5、Do Loop-if……then……
先开始执行,在循环内部有if……then……函数判断来决定跳出循环。
Do
If <逻辑表达式> then Exit Do ‘判断条件在循环体前后均可
<循环体>
Loop Until
示例5
Sub Do循环5()
Dim myRow As Long
myRow = 1
Do
Cells(myRow, 3).Value =Cells(myRow, 1).Value * Cells(myRow, 2).Value
myRow = myRow 1
iF myRow>5 then ExitDo ‘当myRow大于5时循环退出循环。
Loop
End Sub
在大多数情况下Do while.Loop循环语句与Do Until—Loop循环语句可以互换使用,只需将循环条件取反即可。但对于需要先判断再执行的一些操作,最好使用Do While-Loop循环语句。
另外,使用Do-Loop循环语句时,需要在循环体内使用“Exit Do”语句跳出Do-Loop循环,进而执行Loop后面的一条语句,否则造成无限循环,导致电脑死机或软件卡死。这里指的逻辑值为True是指条件成立,False是指条件不成立。
如需保存新建带有以上代码的Excel文件, Excel2007及以后版本,请另存为“.xlsm”后缀文件,否则不能保存代码。
联系客服