Do... Заявление циклов

Повторяет блок операторов, пока условие имеет значение True или пока условие не примет значение True.

Синтаксис

Do [{ WhileUntil | } condition ] [statements] [ Exit Do ] [statements] Loop

Также можно использовать следующий синтаксис.

Do [statements] [ Exit Do ] [statements] Loop [{ WhileUntil | } condition ]

Синтаксис оператора Do Loop состоит из следующих элементов.

Part Описание
условие Необязательный элемент. Числовое выражение или строковое выражение, разрешаемое в значение True или False. Если выражение condition разрешается в значение Null, его значением считается False.
Операторы Один или несколько операторов, которые повторяются, пока условие condition имеет значение True или пока условие не примет это значение.

Примечания

Любое количество заявлений Exit Do может быть размещено в любом месте в Do... Цикл как альтернативный способ выхода из Do... Цикл. Exit Do часто используется после оценки некоторых условий, например If... Затем, в этом случае заявление Exit Do передает управление в заявление сразу после цикла.

При использовании во вложенных циклах 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 и обратная связь.