Использование Do... инструкции Loop
Использовать Do... Loop операторы для выполнения блока операторов неограниченное количество раз. Операторы повторяются до тех пор, пока сохраняется условие True, или пока условие не станет True.
Повторяющиеся инструкции, когда условие имеет значение True
Существует два способа использования Whileключевое слово для проверка условия в do... оператор 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... Loop с помощью оператора 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 и обратная связь.