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 и обратная связь.