Использование 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 и обратная связь.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по