Module
Contents
Index 🔎︎

# Do...Loop Statement

當條件為 True (真) 時重複執行 Do 與 Loop 陳述式之間的陳述式，或重複執行 Do 與 Loop 陳述式之間的陳述式，直至條件變為 True (真)。

## 語法

    Do[{While | Until} condition = True]

陳述式區塊

    [Exit Do]

陳述式區塊

    Loop

或

    Do

陳述式區塊

    [Exit Do]

陳述式區塊

    Loop[{While | Until} condition = True]

## 參數/元素：

Condition：比較表示式、數值型或字串型表示式，這些表示式的演算值為 True (真) 或 False (假)。

Statement block：當條件為 True (真) 時或直至條件變為 True (真) 之前要重複執行的陳述式。

只要條件為 True (真) 或直至某一條件為 True (真) 之前，Do...Loop 陳述式執行迴圈。用於結束迴圈的條件必須放在 Do 或 Loop 陳述式之後。以下示例是一些有效的陳述式組合：

## 語法

    Do While condition = True

...陳述式區塊

    Loop

只要條件為 True (真)，就重複執行 Do While 與 Loop 陳述式之間的陳述式區塊。

    Do Until condition = True

...陳述式區塊

    Loop

只要條件為 False (假)，就重複執行 Do Until 與 Loop 陳述式之間的陳述式區塊。

    Do

...陳述式區塊

    Loop While condition = True

只要條件為 True (真)，就重複執行 Do 與 Loop 陳述式之間的陳述式區塊。

    Do

...陳述式區塊

    Loop Until condition = True

重複執行 Do 與 Loop 陳述式之間的陳述式區塊，直至條件為 True (真)。

Exit Do 陳述式可用於無條件地結束迴圈。您可以在 Do...Loop 陳述式中的任意位置加入此陳述式。也可以使用 If...Then 結構定義一個結束條件，如下所示：

    Do...

陳述式

    If condition = True Then Exit Do

陳述式

    Loop...

## 示例：

    Sub ExampleDoLoop

    Dim sFile As String

    Dim sPath As String

        sPath = "c:\"

        sFile = Dir$( sPath ,22)

        If sFile <> "" Then

            Do

                MsgBox sFile

                sFile = Dir$

            Loop Until sFile = ""

        End If

    End Sub