- VBA的循环除了For还有do...loop循环结构。两者的区别是:
- For循环内置一个计数器,在执行每次循环后自动增加。如。For i = 1 to 5,每次循环 i 都会加1,直到 i >5(预设值)循环终止。
-
DO循环则需要指定逻辑条件才能退出循环,如果忘记指定退出条件,则会一直循环下去,直到消耗完电脑资源。快捷键Ctrl+Break可终止程序。
- do...while...loop
Sub do是怎么运行的()
Dim i As Integer
i = 1
Do While Range("a" & i) <> "" '当A列单元格不为空时,执行循环,否则退出循环
Range("a" & i).Interior.ColorIndex = 6 '设背景色
i = i + 2 '可以相当于步长
Loop
End Sub
- do...until...loop
Sub do是怎么运行的1()
Dim i As Integer
i = 1
Do Until Range("a" & i) = "" '执行循环,直到A列单元格为空退出
Range("a" & i).Interior.ColorIndex = 6 '设背景色
i = i + 2 '可以相当于步长
Loop
End Sub
- 上面两个代码结果是一样的,不同的是while和until的退出循环的条件相反。while和until除了放在do后面,还可以放在loop后面。
Sub do是怎么运行的2()
Dim i As Integer
i = 1
Do
Range("a" & i).Interior.ColorIndex = 6 '设背景色
i = i + 2 '可以相当于步长
Loop Until Range("a" & i) = "" '执行循环,直到A列单元格为空退出
End Sub
Sub do是怎么运行的3()
Dim i As Integer
i = 1
Do
Range("a" & i).Interior.ColorIndex = 6 '设背景色
i = i + 2 '可以相当于步长
Loop While Range("a" & i) <> "" '当A列单元格不为空,执行循环操作,遇到空单元格则退出循环
End Sub
- 改为For循环如下
Sub 改为FOR()
Dim i As Integer
For i = 1 To 18 Step 2
Range("a" & i).Interior.ColorIndex = 6 '设背景色
Next
End Sub