使用 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。