Como usar o loop do while no vba?
VBA Do while é um loop onde você precisa especificar uma condição e essa condição deve permanecer verdadeira para que o loop seja executado. Em palavras simples, primeiro ele verifica se a condição que você especificou é verdadeira ou não e se essa condição for verdadeira ele executa o loop, caso contrário, nada.
A cada iteração ele testa a condição e só então executa a instrução. Imagine que você deseja adicionar planilhas no Excel, mas a contagem total de planilhas é 12 ou menos. Nesse caso, você pode usar o loop do-while para escrever este código.
Sintaxe
Aqui está a sintaxe VBA para cada loop subsequente.
Do While Condition [statements] Loop
- Condição: esta é a condição que você especifica e deve ser verdadeira para executar o loop.
- Instrução : A(s) linha(s) de código nas quais você deseja que o loop Do While execute a condição é verdadeira.
- Loop : Esta é a instrução final de uma iteração do loop e diz ao VBA para voltar para testar a condição novamente.
Exemplo para entender o loop DO While
Para entender o Do While Loop, vamos escrever um código para adicionar planilhas a uma pasta de trabalho quando o número total de planilhas for menor que doze. Você não precisa informar ao VBA quantas planilhas adicionar e sempre terá um total de 12 planilhas cada vez que executar este código.
Use as seguintes etapas:
- Primeiro de tudo, você precisa digitar “Do While” no teclado.
- Em seguida, você precisa escrever uma condição que possa verificar se o número total de planilhas na pasta de trabalho é menor que doze.
- Para fazer isso, você precisa usar o código abaixo, que conta o número total de planilhas e depois compara com o número doze.
- Em seguida, você precisa escrever o código para adicionar uma planilha. Este código será executado quando a condição que você especificou for verdadeira.
- E, ao final, digite a palavra-chave “Loop” para completar o código.
Aqui está o código completo que você acabou de escrever:
Sub vba_do_while_loop() Do While ActiveWorkbook.Worksheets.Count < 12 Sheets.Add Loop End Sub
Agora deixe-me explicar como esse código funciona: A condição que você especificou verifica o número total de planilhas na pasta de trabalho e, em seguida, você tem um operador menor que que verifica o número de planilhas em relação a doze.
Quando o número de planilhas for menor que doze, o loop continuará a ser executado e adicionará novas planilhas, mas quando o número de planilhas atingir doze, o loop irá parar.
Em termos simples, o loop continuará a ser executado enquanto o número de planilhas for menor que doze.
O problema é o seguinte: com o código que você acabou de escrever, você não precisa especificar o número de planilhas que deseja adicionar, mas se for para o próximo loop, você precisa especificar o número de planilhas de cálculo que deseja adicionar.
Faça um loop para
Do Loop While é uma versão estendida do Do While Loop, pois funciona da mesma forma, mas há uma pequena diferença ao testar a condição.
In Do Loop While ele executa uma iteração do loop antes de testar a condição que você especificou e se a condição for verdadeira, ele continuará em loop.
Digamos que você queira escrever algum código para verificar uma senha para executar algum código e continuar fazendo o loop enquanto a senha estiver incorreta (vemos isso no exemplo).
Sintaxe
Aqui está a sintaxe do VBA Do Loop While.
- Do: esta é a palavra-chave inicial do loop Do While.
- Instrução: Esta é a(s) linha(s) de código que você deseja executar no loop.
- Loop While: Esta é a palavra-chave para continuar o loop e testar a condição que você especificou.
- Condição: esta é a condição que você deseja testar antes que o loop comece sua segunda iteração e continue o loop.
Como você pode ver na sintaxe de Do Loop While, ele primeiro executará a instrução uma vez, depois irá para a condição e a testará, e se essa condição for verdadeira, ele iniciará o loop e continuará enquanto a condição for verdadeiro.
Exemplo para entender o loop DO while
Para entender o loop do while, vamos escrever um código para exibir uma caixa de entrada e pedir ao usuário que digite a senha.
Esta caixa de entrada continuará mostrando claramente que a senha digitada pelo usuário está incorreta por até cinco tentativas e depois disso a caixa de entrada desaparecerá sem a realização do procedimento.
- Primeiro, declare duas variáveis necessárias para armazenar a senha e o contador de tentativas.
- Depois disso, digite a palavra-chave “Do”. Aqui você não precisa definir a condição primeiro, como viu na sintaxe.
- Em seguida, você precisa escrever uma linha de código para exibir a caixa de entrada que solicita ao usuário que insira a senha.
- A partir daqui, você precisa definir um contador que possa contar até cinco (somado a cada iteração do loop).
- Agora digite a palavra-chave “Loop While” e defina duas condições que podem verificar o valor inserido pelo usuário e na caixa de entrada e podem testar o valor do contador se for menor que 5.
- No final, escreva o código que deseja executar. Aqui estou usando a instrução IF que exibirá uma caixa de mensagem se a senha inserida pelo usuário estiver correta.
Sub vba_do_loop_while() Dim varPassword As Variant, i As Double Do varPassword = InputBox _ ("Enter the password to start the procedure:", _ "Check Password 1.0") i = i + 1 Loop While varPassword <> "CorrectPassword" And i < 5 If varPassword = "CorrectPassword" Then MsgBox "Your Password is Correct" End If End Sub
Deixe-me explicar esse código para você.
- Na primeira parte deste código você tem o loop do while que exibirá uma caixa de entrada para o usuário e solicitará uma senha .
- E se a senha estiver incorreta, ele continuará executando o loop até que o usuário insira a senha correta.
- Mas como você está usando um contador para contar as iterações do loop e quando esse contador chegar a 5, o loop irá parar .