使用 Do...Loop 语句
使用 Do...Loop语句无限次地运行语句块。 这些语句在条件为 True 时重复,或者直到条件变成 True 时重复。
条件为 True 时重复语句
可通过两种方式使用 While关键字检查 Do...Loop 语句中的条件。 可以在进入循环之前检查条件,也可以在循环运行至少一次后检查该条件。
在以下ChkFirstWhile
过程中,在进入循环之前检查条件。 如果 myNum
设置为 9 而不是 20,循环中的语句决不会运行。 在 ChkLastWhile
过程中,循环中的语句在条件变成 False 前仅会运行一次。
Sub ChkFirstWhile()
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
Sub ChkLastWhile()
counter = 0
myNum = 9
Do
myNum = myNum - 1
counter = counter + 1
Loop While myNum > 10
MsgBox "The loop made " & counter & " repetitions."
End Sub
重复语句,直到条件变为 True
可通过两种方式使用 Until 关键字检查 Do...Loop 语句中的条件。 您可以在进入循环前检查条件(如 ChkFirstUntil
过程中所示),或者也可以在至少运行循环一次后检查(如 ChkLastUntil
过程中所示)。 循环在条件仍为 False 时继续运行。
Sub ChkFirstUntil()
counter = 0
myNum = 20
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
Sub ChkLastUntil()
counter = 0
myNum = 1
Do
myNum = myNum + 1
counter = counter + 1
Loop Until myNum = 10
MsgBox "The loop made " & counter & " repetitions."
End Sub
正在退出 Do...从循环内部Loop 语句
可以退出 Do...使用 Exit Do 语句Loop。 例如,若要退出无限循环,请在 If... 的 True 语句块中使用 Exit Do 语句。然后。。。Else 语句或 Select Case 语句。 如果条件为 False ,循环将照常运行。
在以下示例 myNum
中,分配了一个值,该值创建无限循环。
If...Then...Else 语句将检查此条件,然后退出,从而阻止无限循环。
Sub ExitExample()
counter = 0
myNum = 9
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
If myNum < 10 Then Exit Do
Loop
MsgBox "The loop made " & counter & " repetitions."
End Sub
注意
[!注释] 若要停止无限循环,请按 Esc 或 Ctrl+Break。
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。