Partilhar via


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

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

Instruções de repetição enquanto uma condição é Verdadeira

Existem duas formas de utilizar a palavra-chave Whilepara marcar uma condição num Do... Loop instrução. Pode marcar a condição antes de introduzir o ciclo ou pode marcar-la depois de o ciclo ter sido executado pelo menos uma vez.

No procedimento seguinteChkFirstWhile, marcar a condição antes de introduzir o ciclo. Se myNum estiver definido como 9 em vez de 20, as instruções dentro do ciclo nunca serão executadas. ChkLastWhile No procedimento, as instruções dentro do ciclo são executadas apenas uma vez antes de a condição se tornar Falsa.

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

Repetir instruções até que uma condição se torne Verdadeira

Existem duas formas de utilizar a palavra-chave Until para marcar uma condição num Do... Loop instrução. Pode marcar a condição antes de introduzir o ciclo (conforme mostrado no ChkFirstUntil procedimento) ou pode marcar-la depois de o ciclo ter sido executado pelo menos uma vez (conforme mostrado no ChkLastUntil procedimento). O ciclo 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

A sair de um Do... Loop instrução de dentro do ciclo

Pode sair de um Do... Loop utilizando a instrução Exit Do. Por exemplo, para sair de um ciclo interminável, utilize a instrução Exit Do no bloco de instrução Verdadeiro de um se... Em seguida,... Instrução Senão ou uma instrução Selecionar Caso . Se a condição for Falso, o ciclo será executado como habitualmente.

No exemplo myNum seguinte é atribuído um valor que cria um ciclo interminável. O Se... Em seguida,... A instrução Else verifica a existência desta condição e, em seguida, sai, impedindo ciclos intermináveis.

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 ciclo interminável, prima 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.