还是前面讲的例子:
在A1单元格中数字累加到10:
用Until判断时语句如下:

Sub 退出循环()
Dim N%
Do Until N > 9
N = N + 1
Range("A1") = N
Loop
End Sub
Until N > 9, 意思时直到N>9才停滞循环,先判断N是否大于9,不大于就实行,大于就停滞。所以是先判断后实行。
用while判断时语句如下:
Sub 退出循环1()
Dim N%
Do
N = N + 1
Range("A1") = N
Loop While N < 10
End Sub
While N < 10,意思是当N小于10时就循环DO下面的语句,是先实行后判断。
实际应运举例:
前面章节讲过的例子,当时我们用DO LOOP来写是:
Sub 打算金额()
Dim ro%
ro = 1
Do
If Cells(ro + 1, "c") = "" Then
Exit Do
Else
ro = ro + 1
Cells(ro, "f") = Cells(ro, "d") Cells(ro, "e")
End If
Loop
End Sub
用一个if进行判断,条件成立则exit do。
学习了本日的内容往后,我们可以对上面的代码进行修正:
Sub 打算金额()
Dim ro%
ro = 1
Do until Cells(ro + 1, "c") = ""
ro = ro + 1
Cells(ro, "f") = Cells(ro, "d") Cells(ro, "e")
Loop
End Sub
或者是:
Sub 打算金额()
Dim ro%
ro = 1
Do
ro = ro + 1
Cells(ro, "f") = Cells(ro, "d") Cells(ro, "e")
Loop while Cells(ro + 1, "c") <>""
End Sub
是不是比用if判断显得更加简洁呢?
转自:米宏Office