VBA⼊门11:DO...LOOP循环
VBA中除了for循环,还有do循环。for循环适⽤于提前知道循环次数的,do循环适⽤于当逻辑条件满⾜时终⽌的循环。
要求:从第2⾏开始着⾊,每隔⼀⾏着⾊。结果如下。
代码注释:
1:定义变量 i 整型
2:i 初始值为2
3:开始循环,(条件)当A列中单元格不为空的时候
4:单元格整⾏着⾊
5:间隔,相当于for循环的step
6:重复操作,退出条件为A列中的单元格为空的时候,就退出循环。
这⾥需要理解的是:do循环的逻辑条件: Do While Range('a' & i) <> ''
代码操作过程可以试着这样理解:
选中单元格A2,A2不为空,整⾏着⾊,继续循环
选中单元格A4,A4不为空,整⾏着⾊,继续循环
......
选中单元格A12,A12为空,退出循环
Do循环中除了⽤While设定逻辑条件,还可以⽤Until设定,如下⾯代码:
对⽐2个逻辑条件:
逻辑条件1:While Range('a' & i) <> ''
可以理解为:当A列单元格不为空时,就进⾏循环。
逻辑条件2:Until Range('a' & i) = ''
可以理解为:直到A列单元格为空,就退出循环。
两者条件设定是相反的。
逻辑条件的位置可以放在do后⾯也可以放在loop后⾯
While和Until放在loop后⾯,可以确保循环中的代码⾄少执⾏⼀次。因为当执⾏do语句⾏内
判断的时候,很可能⼀开始的判断结果就是False,循环被跳过。
do while语句怎么用
Sub 密码判断()
Dim pw As String
Do
pw = InputBox('请输⼊密码')
Loop Until pw = '天王盖地虎'
MsgBox '欢迎'
End Sub
上⾯代码要求输⼊密码,直到输⼊正确的密码 '天王盖地虎'循环才会退出。
显然,判断条件放在Loop后⾯⽐放在Do后⾯更合理些,先输⼊密码后判断,没问题。虽然判断放在Do后⾯代码同样没问题。
附:整⾏着⾊栗⼦Do循环改⽤FOR循环代替

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。