共用方式為


使用 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

結束...從循環內部 Loop 語句

您可以結束執行...Loop 使用 Exit Do 語句。 例如,若要結束無限迴圈,請在 If... 的 True 語句區塊中使用 ExitDo語句然後。。。Else 語句或 Select Case 語句。 如果條件為 False,迴圈會如往常般執行。

在下列範例 myNum 中,會指派可建立無止盡循環的值。 If...然後。。。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 支援與意見反應