Сделать... Оператор Loop

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

Синтаксис

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

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

Do [ инструкции ] [ Exit Do ] [ операторы ] Loop [{ While | Until } condition ]

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

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

Замечания

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

При использовании во вложенных циклах Do…Loop оператор Exit Do передает управление циклу, который находится на один уровень выше цикла оператора Exit Do.

Пример

В этом примере показано использование операторов Do...Loop. Внутреннее ... Оператор Loop выполняет цикл 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 и обратная связь.