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

Use... Loop para executar um bloco de instruções um número indefinido de vezes. As instruções são repetidas enquanto uma condição for True ou até que uma condição se torne True.

Repetir instruções enquanto uma condição é verdadeira

Há duas maneiras de usar o Whilepalavra-chave para marcar uma condição em um Do... Loop. Você pode marcar a condição antes de entrar no loop ou pode marcá-la depois que o loop tiver sido executado pelo menos uma vez.

No procedimento a seguirChkFirstWhile, você marca a condição antes de entrar no 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

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

Há duas maneiras de usar a palavra-chave-chave Until para marcar uma condição em uma... Loop. Você pode marcar a condição antes de entrar no loop (como mostrado no ChkFirstUntil procedimento) ou pode marcá-la depois que o loop tiver sido executado pelo menos uma vez (como mostrado no ChkLastUntil procedimento). O loop continua enquanto a condição permanece falsa.

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... Loop de dentro do loop

Você pode sair de um arquivo 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ções True de um If... Então... Else ou uma instrução Select Case . 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 campo Se... Então... A instrução Else verifica essa condição e, em seguida, sai, evitando looping 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.