Usando faça... instruções de Loop
Use Fazer... Instruções de loop para executar um bloco de instruções um número indefinido de vezes. As instruções são repetidas enquanto uma condição é True ou até que uma condição se torne True.
Instruções repetidas enquanto uma condição é True
Há duas maneiras de usar o Whilepalavra-chave para marcar uma condição em um Do... Instrução loop. Você pode marcar a condição antes de inserir o loop ou marcar-lo depois que o loop tiver sido executado pelo menos uma vez.
No procedimento a seguirChkFirstWhile
, você marcar a condição antes de inserir o loop. Se myNum
for definido como 9 em vez de 20, as instruções dentro do loop nunca serão executadas. ChkLastWhile
No procedimento, as instruções dentro do loop são executadas apenas uma vez antes que a condição se torne 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
Repetindo instruções até que uma condição se torne True
Há duas maneiras de usar o Until palavra-chave para marcar uma condição em um Do... Instrução loop. Você pode marcar a condição antes de inserir o loop (conforme mostrado no ChkFirstUntil
procedimento) ou marcar-lo depois que o loop tiver sido executado pelo menos uma vez (conforme mostrado no ChkLastUntil
procedimento). O loop continua enquanto a condição permanece 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
Saindo de um Do... Instrução loop de dentro do loop
Você pode sair de um Do... Loop usando a instrução Exit Do . Por exemplo, para sair de um loop sem fim, use a instrução Exit Do no bloco de instrução True de um If... Então... Outra instrução ou uma instrução Selecionar Caso . Se a condição for False, o loop será executado normalmente.
No exemplo myNum
a seguir é atribuído um valor que cria um loop infinito. O Se... Então... Outra instrução verifica essa condição e, em seguida, sai, impedindo loops sem fim.
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
Observação
Para parar um loop sem fim, pressione ESC ou CTRL+BREAK.
Confira também
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.