我是靠谱客的博主 超级小熊猫,这篇文章主要介绍VBA-循环语句之Do...Loop,现在分享给大家,希望可以做个参考。

声明:笔记来源于我要自学网-《Excel VBA基础教程》-授课讲师:曾贤志


Do ... Loop 循环语句,直到满足某个条件

复制代码
1
2
3
4
5
6
7
8
9
10
Sub DoLoop基本示例() Dim a% Do a = a + 1 If a > 10 Then MsgBox a & "终于大于10" Exit Do End If Loop End Sub

实例应用:将大于等于90分的勾选出来

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
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
复制代码
1
2
3
4
5
6
7
8
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
复制代码
1
2
3
4
5
6
7
8
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

实例应用:进行隔行填色

复制代码
1
2
3
4
5
6
7
8
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后面
事实上有时在循环的最后一行进行判断,更具有意义

复制代码
1
2
3
4
5
6
7
8
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 所在位置的外层循环。

复制代码
1
2
3
4
5
6
7
8
9
10
Sub 第3点例子实例() Dim a% Do a = a + 1 If a > 5 Then MsgBox a & "终于大于5" Exit Do End If Loop End Sub
复制代码
1
2
3
4
5
6
7
8
9
10
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内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部