Do...循环语句

重复语句块(当条件为“True” 时,或直到条件成为“True”时)。

语法

执行 [{ While | Until } 条件 ] [ 语句 ] [ Exit Do ] [ statements ] 循环

或者,您可以使用此语法:

Do [ 语句 ] [ Exit Do ] [ statements ] Loop [{ While | Until } condition ]

“执行循环”语句语法具有以下部件:

Part 说明
条件 可选。 为“True”或“False”数值表达式字符串表达式。 如果条件Null,那么条件将被视为“False”
statements 当或直到条件为“True”时重复的一个或多个语句。

备注

任意数量的 Exit Do 语句可以放置在 Do 中的任意位置...循环 作为退出 Do...循环。 “Exit Do” 通常用于评估某些条件之后(例如“If…Then”),在这些条件下,“Exit Do”语句将控件转换成了紧跟“Loop”之后的语句。

当被用于嵌套的“Do…Loop”语句时,“Exit Do”将控件转换为了是发生“Exit Do” 的循环之上的嵌套级别的循环。

示例

此示例演示了如何使用“Do...Loop”语句。 内部 Do...循环语句循环 10 次,询问用户是否应继续运行,在选择“否”时将标志的值设置为 False,并使用 Exit Do 语句提前退出。 外部循环在检查该标志的值时立即退出。

Public Sub LoopExample()
    Dim Check As Boolean, Counter As Long, Total As Long
    Check = True: Counter = 0: Total = 0 ' Initialize variables.
    Do ' Outer loop.
        Do While Counter < 20 ' Inner Loop
            Counter = Counter + 1 ' Increment Counter.
            If Counter Mod 10 = 0 Then ' Check in with the user on every multiple of 10.
                Check = (MsgBox("Keep going?", vbYesNo) = vbYes) ' Stop when user click's on No
                If Not Check Then Exit Do ' Exit inner loop.
            End If
        Loop
        Total = Total + Counter ' Exit Do Lands here.
        Counter = 0
    Loop Until Check = False ' Exit outer loop immediately.
    MsgBox "Counted to: " & Total
End Sub

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。