Использование Do... Операторы цикла

Использовать Do... Операторы цикла для выполнения блока инструкций неограниченное количество раз. Операторы повторяются до тех пор, пока сохраняется условие True, или пока условие не станет True.

Повторяющиеся инструкции, когда условие имеет значение True

Существует два способа использования ключевого словаWhile для проверки условия в... Оператор Loop. Вы можете проверить условие перед вводом цикла или проверить его после выполнения цикла хотя бы один раз.

В следующей ChkFirstWhile процедуре необходимо проверить условие перед вводом цикла. Если myNum задано значение 9, а не 20, операторы внутри цикла никогда не будут выполняться. В процедуре ChkLastWhile инструкции в цикле выполняются только один раз, прежде чем условие станет False.

Sub ChkFirstWhile() 
    counter = 0 
    myNum = 20 
    Do While myNum > 10 
        myNum = myNum - 1 
        counter = counter + 1 
    Loop 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub 
 
Sub ChkLastWhile() 
    counter = 0 
    myNum = 9 
    Do 
        myNum = myNum - 1 
        counter = counter + 1 
    Loop While myNum > 10 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub

Повторяющиеся инструкции до тех пор, пока условие не станет true

Существует два способа использования ключевого слова Until для проверки условия в операторе Do...Loop. Вы можете проверить условие перед вводом цикла (как показано в ChkFirstUntil процедуре) или проверить его после выполнения цикла хотя бы один раз (как показано в процедуре ChkLastUntil ). Повторение циклов продолжается, пока сохраняется условие False.

Sub ChkFirstUntil() 
    counter = 0 
    myNum = 20 
    Do Until myNum = 10 
        myNum = myNum - 1 
        counter = counter + 1 
    Loop 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub 
 
Sub ChkLastUntil() 
    counter = 0 
    myNum = 1 
    Do 
        myNum = myNum + 1 
        counter = counter + 1 
    Loop Until myNum = 10 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub

Выход из do... Оператор Loop из цикла

Вы можете выйти из do... Выполните цикл с помощью инструкции Exit Do . Например, чтобы выйти из бесконечного цикла, используйте инструкцию Exit Do в блоке инструкции True либо if... Затем... Оператор Else или оператор Select Case . Если условие будет False, цикл запустится обычным образом.

В следующем примере myNum присваивается значение, которое создает бесконечный цикл. Оператор If...Then...Else проверяет это условие, а затем выходит из бесконечного цикла.

Sub ExitExample() 
    counter = 0 
    myNum = 9 
    Do Until myNum = 10 
        myNum = myNum - 1 
        counter = counter + 1 
        If myNum < 10 Then Exit Do 
    Loop 
    MsgBox "The loop made " & counter & " repetitions." 
End Sub

Примечание.

Чтобы остановить бесконечный цикл, нажмите клавиши ESC или CTRL+BREAK.

См. также

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.