概述
声明:笔记来源于我要自学网-《Excel VBA基础教程》-授课讲师:曾贤志
Do ... Loop 循环语句,直到满足某个条件
Sub DoLoop基本示例()
Dim a%
Do
a = a + 1
If a > 10 Then
MsgBox a & "终于大于10"
Exit Do
End If
Loop
End Sub
实例应用:将大于等于90分的勾选出来
Sub 判断成绩并打勾()
Dim rs%
rs = 1
Do
rs = rs + 1
If rs > 10 Then
Exit Do '这里也可以写做Exit sub,因为已经完成了所有判断,直接就退出整个子过程
Else
If Cells(rs, 2) >= 90 Then Cells(rs, 3) = "√"
End If
Loop
End Sub
Sub 循环语句while() '该代码比上面这个代码更简洁
Dim rs%
rs = 2
Do While Cells(rs, 2) <> "" '当单元格不等于空时,则循环
If Cells(rs, 2) >= 90 Then Cells(rs, 3) = "√"
rs = rs + 1
Loop '循环
End Sub
Sub 循环语句DOLOOP2()
Dim rs%
rs = 2
Do Until Cells(rs, 2) = "" '直到单元格为空时,才结束
If Cells(rs, 2) >= 90 Then Cells(rs, 3) = "√"
rs = rs + 1
Loop '循环
End Sub
实例应用:进行隔行填色
Sub 隔行填色实例应用()
Dim rs%
rs = 2
Do Until Sheet1.Range("a" & rs) = ""
Sheet1.Range("a" & rs & ":g" & rs).Interior.ColorIndex = 7
rs = rs + 2
Loop
End Sub
while与until不但可以放在Do后面,也可以放在loop后面
事实上有时在循环的最后一行进行判断,更具有意义
Sub doloop的最后判断循环()
Dim pa$, i!
Do
i = i + 1 '作用是对输入次数做个累加
If i > 3 Then Exit Do '当输入错误超出3次,就关闭了窗口,退出了Do循环
pa = InputBox("请输入密码") '在输入框键入密码;先键入密码,再做判断
Loop Until pa = "123" '判断键入的密码是不是123,如果是就退出循环,不是则继续循环
End Sub
***Do...Loop语法小结***
Do [{While | Until} 表达式]
[执行的一条或多条语句]
[Exit Do]
[执行的一条或多条语句]
Loop
---------------------------------------------------------
while:当这个条件为True时就 循环
until:直到这个条件为True时就 跳出循环
---------------------------------------------------------
或者可以使用下面这种语法:
Do
[执行的一条或多条语句]
[Exit Do]
[执行的一条或多条语句]
Loop [{While | Until}表达式]
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
用Do...Loop循环要注意的几点:
1,While与Until是放在Do后面还是Loop后面,取决于是先判断再循环,还是先循环再判断。
2,可以在Do...Loop中的任何位置放置任意个数的 Exit Do 语句,随时跳出 Do...Loop 循环。
3,Do...Loop + If...Then + Exit Do 通常结合使用。
4,如果Exit Do 使用在嵌套的 Do...Loop 语句中,则 Exit Do 会将控制权转移到 Exit Do 所在位置的外层循环。
Sub 第3点例子实例()
Dim a%
Do
a = a + 1
If a > 5 Then
MsgBox a & "终于大于5"
Exit Do
End If
Loop
End Sub
Sub 第4点例子实例() '注意这是一个死循环,按F8运行(中止死循环:Ctrl+暂停键)
Do
b = b + 1
Do
a = a + 1
If a > 3 Then MsgBox "即将跳出内层循环": Exit Do
Loop
MsgBox "即将进行外层循环"
Loop
End Sub
最后
以上就是超级小熊猫为你收集整理的VBA-循环语句之Do...Loop的全部内容,希望文章能够帮你解决VBA-循环语句之Do...Loop所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复