VBA While Loop

VBA While Loop é um conceito importante e poderoso que você pode ter visto na maioria das linguagens de programação. Se você dominar esse conceito no VBA, poderá preparar scripts poderosos que funcionam com dados da planilha de maneiras totalmente diferentes e convenientes. Neste artigo, prepare-se para explorar o mundo dos diferentes loops while, juntamente com vários exemplos para ajudá-lo.

O objetivo do loop While é repetir um determinado bloco de instruções sujeito a uma condição que está sendo atendida. Mais precisamente, o loop while repete a instrução correspondente enquanto uma condição é True. Depois que a condição se tornar falsa (não atende), o loop termina automaticamente.

Existem basicamente dois tipos de loop while no Microsoft Excel VBA:

  • Loop VBA While-Wend
  • Loop de tempo de execução do VBA

O VBA While-Wend Loop existe para tornar o código compatível com uma versão mais antiga dos códigos. O VBA Do-While é a versão atualizada do loop while, que é mais flexível e estruturada em comparação com a anterior e recomenda-se o uso pela comunidade da Microsoft.

Caso você esteja se perguntando o que significa Wend, é uma forma curta de While End e funciona da mesma forma.

Exemplos de VBA While Loop

Vamos nos aprofundar no guia passo a passo de diferentes tipos de VBA While Loops.

Você pode fazer o download deste modelo do VBA While Loop Excel aqui - Modelo do VBA While Loop Excel

Exemplo 1

Loop VBA While-Wend

Sintaxe:

Vamos dar um exemplo para ver isso de uma maneira melhor.

  • Defina um subprocedimento para criar uma macro no novo módulo.

Código:

 Sub WhileEx1 () End Sub 

  • Defina duas variáveis ​​Número como Um e Soma como Zero.

Código:

 Sub WhileEx1 () Número = 1 Soma = 0 Fim Sub 

  • Defina uma condição while para a variável Number.

Código:

 Sub WhileEx1 () Número = 1 Soma = 0 Enquanto Número <= 10 End Sub 

  • Adicione instruções a serem executadas para esta condição while.

Código:

 Sub WhileEx1 () Número = 1 Soma = 0 Enquanto Número <= 10 Soma = Soma + Número Número = Número + 1 Fim Sub 

  • Adicione Debug.Print Sum para que a soma dos 10 primeiros números naturais possa ser impressa um por um na Janela Imediata.

Código:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum End Sub 

  • Por fim, termine o loop While com a instrução Wend.

Código:

 Sub WhileEx1 () Number = 1 Sum = 0 While Number <= 10 Sum = Sum + Number Number = Number + 1 Debug.Print Sum Wend End Sub 

  • Pressione F5 ou o botão Executar para executar esse código e ver a saída.

Nesse código, a variável sum é definida como zero. Portanto, toda vez que o Número é aumentado em 1 até atingir 10 (usando o loop while), a variável soma adiciona a soma anterior ao número atual e a exibe sob a Janela Imediata linha por linha ou soma gradual que você pode dizer.

Exemplo 2

Loop de tempo de execução do VBA

Loop Do-While Quando Condition é verificado antes do loop iniciar

Existem duas maneiras pelas quais o loop while pode ser executado.

  • Você pode adicionar uma condição antes do loop iniciar (é o mesmo que o loop While-Wend). Aqui, não haveria iteração do loop se a condição falhar pela primeira vez.
  • Você pode adicionar uma condição no último ciclo para verificar. Nesse caso, haverá pelo menos uma iteração do loop antes que a condição falhe.

Sintaxe:

Vamos dar um exemplo para tornar as coisas mais claras.

  • Insira um novo módulo e defina um novo subprocedimento para definir uma macro.

Código:

 Sub WhileEx2 () End Sub 

  • Defina uma nova variável I como um número inteiro. E inicie seu valor para 1.

Código:

 Sub WhileEx2 () Dim i Dim Inteiro i = 1 End Sub 

  • Use Do-While para adicionar uma condição no início do loop.

Código:

 Sub WhileEx2 () Dim i Dim Inteiro i = 1 Faça While i <= 10 End Sub 

  • Adicione instruções a serem executadas desde que a condição seja verdadeira. Adicione a linha de código abaixo à macro.

Código:

 O valor de x é o valor da expressão (x) = x2 + x2 + x2 + y2 + y2 + y2 + y2 + y2 + y2 + y2 

Esta declaração permite que a i-ésima linha da primeira coluna armazene o valor ao quadrado dos números.

  • Adicione mais uma instrução que permita um incremento de i por 1 a cada iteração do loop.

Código:

 O valor de x é o valor da expressão (x + 1) e o valor da expressão x (x) = 0. 

  • Complete esse loop adicionando a instrução Loop no final do seu código.

Vamos ver a solução alternativa deste código:

Para os valores de i de 1 (i = 1 inicialmente) a 10, ele calcula i * i (ou seja, valor ao quadrado para cada valor inteiro de i) e o insere nas linhas 1 a 10 da coluna 1 (ou seja, coluna A), respectivamente . A saída nada mais é do que os valores ao quadrado dos números inteiros 1 a 10.

  • Execute esse código pressionando F5 ou o botão Executar e veja a saída.

Você pode ver os valores ao quadrado dos números naturais 1 a 10 que são armazenados em cada célula separadamente da coluna A.

Exemplo 3

Loop Do-While Quando Condition está marcado no final do loop

Sintaxe:

Vamos ver um exemplo para ver o loop de uma maneira melhor.

  • Insira um novo módulo e defina um novo subprocedimento para armazenar uma macro.

Código:

 Sub WhileEx3 () End Sub 

  • Defina um novo número inteiro igual ao exemplo anterior e atribua um valor inicial a ele.

Código:

 Sub WhileEx3 () Dim i Dim Inteiro i = 1 End Sub 

  • Use uma condição Do para adicionar as instruções a serem executadas, desde que a condição seja verdadeira.

Código:

 O valor de x é: a) (b) (b) (c) (b) (c) (c) (c) 

É recomendável usar espaço em branco (tecla Tab) como um recuo mostrado no código acima, o que permite que o código funcione sem problemas e também define um bom formato de estrutura para o código.

  • Use Loop while para adicionar uma condição a ser verificada para que cada instrução seja executada.

Código:

 O valor de x é o valor da expressão (x + 1) = 0 (x) = 0; x = 0; x = 0; x = 0; x = 0; x = 0; x = 0; x = 0. 

  • Execute esse código pressionando F5 ou o botão Executar manualmente e veja a saída.

Você verá a saída como mostrado na figura acima.

Como esse código funciona no back-end?

O sistema multiplica o valor de i (a partir de 1) para si mesmo e armazena na segunda coluna (Células (i, 2)) para cada linha, uma por uma. O código para de ser executado assim que o valor da variável i atinge 10. A saída pode ser a mesma, o que significa que ambos os códigos estão funcionando da mesma maneira. Mas a principal diferença está na compilação do código. No último exemplo, a condição já estava lá, e o sistema sabia até que número precisava ir. No entanto, neste código, o sistema não tem conhecimento da condição no momento da execução das instruções e executa a iteração uma a uma. Desde que a condição seja falsa, o código parou de ser executado.

Coisas para se lembrar sobre o VBA While Loop

  • O loop While-Wend é obsoleto e existe apenas para ser compatível com versões mais antigas de códigos. Você deve usar um loop Do-While.
  • O loop Do-While é mais flexível e bem estruturado em comparação com o loop While-Wend.
  • O loop do-while pode ser usado de duas maneiras: em um caso, você pode adicionar a condição primeiro a ser verificada e, em seguida, adicionar instruções que satisfaçam a condição. De outra maneira, você pode adicionar instruções primeiro e depois adicionar a condição a ser verificada.
  • Recomenda-se que os recuos sejam usados ​​em loops, para que o código possa ser mais dinâmico e fácil de ler.

Artigos recomendados

Este foi um guia para o VBA Do While Loop. Aqui discutimos como usar o Excel VBA Do While Loop, juntamente com alguns exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. Como usar a função FIND no Excel?
  2. Como usar a função VBA TRIM?
  3. Matrizes VBA | Tutorial completo
  4. Como usar o VBA Select Case?

Categoria: