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 a palavra-chaveEnquanto para verificar uma condição em um Do... Instrução loop. Você pode verificar a condição antes de inserir o loop ou verificá-la depois que o loop tiver sido executado pelo menos uma vez.

No procedimento a seguir ChkFirstWhile , você verifica 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 a palavra-chave Until para verificar uma condição em um Do... Instrução loop . Você pode verificar a condição antes de inserir o loop (conforme mostrado no ChkFirstUntil procedimento) ou verificar 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.