VBA Do Loops - Como usar o Excel VBA Do Loops?

Excel VBA Do Loop

VBA Do loop , é um conjunto de instruções dentro de um subprocedimento onde o código é executado um número específico de vezes até que o critério desejado seja alcançado ou qualquer limite seja excedido ou seguro dizer isso até que os dados necessários sejam obtidos.

Enquanto o loop funciona com resultados lógicos, ele continua executando o loop para frente e para trás enquanto a condição de teste é TRUE. No momento em que a condição de teste retornar FALSE, ela sairá do loop. Os loops são o coração de qualquer linguagem de programação. Em nossos artigos, demonstramos a importância dos loops e das formas de codificá-los. Neste artigo, mostramos como usar o Do Loop.

Como usar o VBA Do Loop?

Exemplo # 1 - Condição no final do Loop

Vimos o teste de condição no início do loop. No código anterior, vimos o exemplo de inserção de números de série, e o código era assim.

Código:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do While k <= 10 Células (k, 1) .Valor = kk = k + 1 Loop End Sub

Agora você pode executar este código manualmente ou através da tecla de atalho F5 para ver o resultado.

Este código irá inserir números de série de 1 a 10.

Mas também podemos testar a condição no final do loop. Precisamos usar a palavra “while” e o teste de condição no final após a palavra Loop.

A única mudança aqui é aplicar o teste no final, conforme mostrado abaixo.

Código:

Sub Do_While_Loop_Example1 () Dim k As Long k = 1 Do Cells (k, 1) .Value = kk = k + 1 Loop While k <= 10 End Sub

Assim, também podemos testar a condição no final da instrução de loop.

Nota: o código será executado e, em seguida, testa a condição para voltar ou não ao loop mais uma vez. Isso significa que ele será executado primeiro e, em seguida, tentará a situação mais tarde.

Exemplo 2 - Soma usando Do While Loop

Suponha que você tenha dados de vendas e custos em sua planilha do Excel. Abaixo está o conjunto de dados fictícios que criei para cálculo.

Agora precisamos obter o valor do lucro na coluna C. Já criei um código que fará um trabalho para mim.

Código:

Sub Do_While_Loop_Example2 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp) .Row Do While k <= LR Cells (k, 3) .Value = Cells (k , 1) + Células (k, 2) k = k + 1 Loop End Sub
LR = Células (Rows.Count, 1) .End (xlUp) .Row

Este código identificará a última linha usada na primeira coluna. Isso torna o código dinâmico porque se houver alguma adição ou exclusão dos dados, isso ajustará meu tempo de sequência para executar o loop.

k = 2

Queremos que o cálculo seja feito a partir da segunda célula. Portanto, o valor inicial de k é 2.

Faça enquanto k <= LR

Como eu disse, LR encontrará a última linha usada na primeira coluna. Isso significa que o loop será executado enquanto k for <= ao valor de LR. Nesse caso, tenho 10 linhas, então LR = 10.

O loop será executado até que o valor k chegue a 10. Assim que o valor passar de 10 loops, ele irá parar.

Agora você pode executar este código usando a tecla de atalho F5 ou manualmente para ver o resultado.

Exemplo # 3 - Declaração de saída em Do While Loop

Também podemos sair do loop enquanto a condição ainda for TRUE apenas. Por exemplo, pegue os dados acima aqui também.

Suponha que você não quer fazer o cálculo completo, mas você só precisa calcular os primeiros 5 fileiras de lucro, e assim que ele atinge o 6 º linha, você quer sair do loop. Isso pode ser feito usando a função IF no Excel. O código a seguir inclui a instrução de saída.

Código:

Sub Do_While_Loop_Example3 () Dim k As Long Dim LR As Long k = 2 LR = Cells (Rows.Count, 1) .End (xlUp) .Row Do While k 6 Then Exit Do Cells (k, 3) .Value = Cells ( k, 1) + Células (k, 2) k = k + 1 Loop End Sub
“If k> 6 Then Exit Do”

Esta linha de código iniciará o processo de saída. O loop continuará em execução até que o valor de k alcance 6. No momento em que ultrapassar 6, se a condição irá executar o código, “Exit Do.”

Agora você pode executar este código usando a tecla de atalho F5 ou manualmente para ver o resultado.

Coisas para lembrar

  • Faz. O loop funciona em resultados lógicos e continua executando o loop para frente e para trás enquanto a condição de teste é TRUE. No momento em que a condição de teste retornar FALSE, ela sairá do loop.
  • Podemos sair do loop a qualquer momento ajustando mais um teste lógico dentro do círculo usando a função IF.
  • Se a condição ou teste for fornecido na parte superior do loop, ele primeiro verificará o teste e progredirá somente se for TRUE.
  • Se a condição ou teste for fornecido no final do loop, ele executará primeiro o bloco de código dentro da instrução de loop e, no futuro, testará a condição para decidir se deve voltar para executar o loop mais uma vez ou não.

Artigos interessantes...