Сделать... Оператор 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 и обратная связь.