Usando faça... instruções de Loop

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

No procedimento a ChkFirstWhile seguir, verifique a condição antes de inserir o loop. Se myNum estiver definido como 9 em vez de 20, as instruções dentro do loop nunca serão executados. No procedimento ChkLastWhile , as instruções dentro do loop são executados 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

Instruções repetidas até que uma condição se torne True

Há duas maneiras de usar a palavra-chave Até para verificar uma condição em um Do... Instrução Loop . Você pode verificar a condição antes de inserir o loop ( ChkFirstUntil conforme mostrado no procedimento) ou 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

Sair 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 infinito, use a instrução Exit Do no bloco de instrução True de um if... Em seguida, ... Instrução Else ou uma instrução Select Case . Se a condição for False, o loop será executado normalmente.

No exemplo a seguir, myNum é atribuído um valor que cria um loop infinito. O Se... Em seguida, ... A instrução Else verifica essa condição e, em seguida, sai, impedindo o loop infinito.

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 interromper um loop infinito, 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.