VBA - Loops Do-While

UMA Do…Whileloop é usado quando queremos repetir um conjunto de instruções, desde que a condição seja verdadeira. A condição pode ser verificada no início ou no final do loop.

Sintaxe

A seguir está a sintaxe de um Do…While loop em VBA.

Do While condition
   [statement 1]
   [statement 2]
   ...
   [statement n]
   [Exit Do]
   [statement 1]
   [statement 2]
   ...
   [statement n]
Loop

Diagrama de fluxo

Exemplo

O exemplo a seguir usa Do…whileloop para verificar a condição no início do loop. As instruções dentro do loop são executadas, apenas se a condição se tornar True.

Private Sub Constant_demo_Click()
   Do While i < 5
      i = i + 1
      msgbox "The value of i is : " & i
   Loop
End Sub

Quando o código acima é executado, ele imprime a seguinte saída em uma caixa de mensagem.

The value of i is : 1

The value of i is : 2

The value of i is : 3

The value of i is : 4

The value of i is : 5

Sintaxe Alternativa

Há também uma sintaxe alternativa para Do…whileloop que verifica a condição no final do loop. A principal diferença entre essas duas sintaxes é explicada no exemplo a seguir.

Do 
   [statement 1]
   [statement 2]
   ...
   [statement n]
   [Exit Do]
   [statement 1]
   [statement 2]
   ...
   [statement n]
Loop While condition

Exemplo

O exemplo a seguir usa Do…whileloop para verificar a condição no final do loop. As instruções dentro do loop são executadas pelo menos uma vez, mesmo se a condição for False.

Private Sub Constant_demo_Click() 
   i = 10
   Do
      i = i + 1
      MsgBox "The value of i is : " & i
   Loop While i < 3 'Condition is false.Hence loop is executed once.
End Sub

Quando o código acima é executado, ele imprime a seguinte saída em uma caixa de mensagem.

The value of i is : 11