Do... Оператор LoopDo...Loop statement

Повторяет блок операторов, пока условие имеет значение True или пока условие не примет значение True.Repeats a block of statements while a condition is True or until a condition becomes True.

СинтаксисSyntax

Do [{ while | until } условие ]Do [{ While | Until } condition ]
[ Операторы ][ statements ]
[ Exit Do ][ Exit Do ]
[ Операторы ][ statements ]
CNAMELoop

Также можно использовать следующий синтаксис.Or, you can use this syntax:

DoDo
[ Операторы ][ statements ]
[ Exit Do ][ Exit Do ]
[ Операторы ][ statements ]
Loop [ время | до } условие ]Loop [{ While | Until } condition ]


Синтаксис оператора Do Loop состоит из следующих элементов.The Do Loop statement syntax has these parts:

ЧастьPart ОписаниеDescription
установленcondition Необязательно.Optional. Числовое выражение или строковое выражение, разрешаемое в значение True или False.Numeric expression or string expression that is True or False. Если Condition имеет значение NULL, условие считается ложным.If condition is Null, condition is treated as False.
Операторыstatements Один или несколько операторов, которые повторяются, пока условие имеет значение true.One or more statements that are repeated while, or until, condition is True.

ПримечанияRemarks

Любое количество операторов Exit Do можно поместить в любом месте оператора Do... Loop в качестве альтернативного способа выхода из оператора Do... Loop.Any number of Exit Do statements may be placed anywhere in the Do…Loop as an alternate way to exit a Do…Loop. Exit Do часто используется после оценки некоторого условия, например If... Затем, в этом случае оператор Exit Do передает управление оператору, следующему сразу за циклом.Exit Do is often used after evaluating some condition, for example, If…Then, in which case the Exit Do statement transfers control to the statement immediately following the Loop.

При использовании во вложенных циклах Do…Loop оператор Exit Do передает управление циклу, который находится на один уровень выше цикла оператора Exit Do.When used within nested Do…Loop statements, Exit Do transfers control to the loop that is one nested level above the loop where Exit Do occurs.

ПримерExample

В этом примере показано использование операторов Do...Loop.This example shows how Do...Loop statements can be used. Внутренняя процедура Do... Loop выполняет циклы 10 раз, запрашивает пользователя, если он должен продолжить работу, устанавливает значение флага false при выборе значения нети преждевременно завершает работу с помощью оператора Exit Do .The inner Do...Loop statement loops 10 times, asks the user if it should keep going, sets the value of the flag to False when they select No, and exits prematurely by using the Exit Do statement. Выход из внешнего цикла происходит сразу после проверки значения флага.The outer loop exits immediately upon checking the value of the flag.

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

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.