Loop VBA do Excel VBA

O loop Do till continuará repetindo as instruções até que a condição / critério se torne VERDADEIRO. Ele executará as instruções enquanto as condições forem FALSE. Assim que a condição / critério se tornar VERDADEIRO, ele encerra o loop. Pode parecer oposto ao loop Do While, onde o loop é executado desde que os critérios sejam VERDADEIROS e seja finalizado assim que os critérios forem FALSE.

Veja o diagrama de fluxo abaixo, que explica o funcionamento do loop Do Até:

Sintaxe de fazer até loop no Excel VBA

O loop Fazer até tem dois tipos de sintaxe no Excel VBA.

Sintaxe 1:

 Fazer até (condição) (instruções a serem executadas) 

Sintaxe 2:

 Do (Instruções a serem executadas) Loop até (Condição) 

A diferença básica entre essas duas sintaxes é de execução. Na primeira sintaxe, o loop sempre verifica se a condição é verdadeira ou falsa. Se for False, repetirá o loop novamente. Assim que a condição / critério for verdadeira, ele encerrará o loop. Nesse caso, existe a possibilidade de o loop terminar na primeira iteração (se a condição for True). Portanto, você não receberá nenhuma saída nesse caso. No entanto, na segunda sintaxe, o loop executará inicialmente as instruções e, em seguida, verificará se a condição é verdadeira ou falsa. Se a condição for False, ele executará novamente o mesmo conjunto de instruções e verificará a condição. Se a primeira iteração fornecer condição como True, esse loop será encerrado, mas antes disso, ele terá uma instrução executada. Nesse caso, obteremos pelo menos uma iteração (como saída nula).

Finalmente, a saída dos dois códigos será a mesma. No entanto, a execução é algo que difere esses dois.

Exemplo de loop até do Excel VBA

Vamos ver os exemplos de fazer até loop no Excel VBA.

Você pode fazer o download deste modelo do Excel do VBA até o loop aqui - Modelo do Excel do VBA até o loop

Exemplo # 1 - Loop até do VBA quando as condições são verificadas no início

Siga as etapas abaixo para aplicar o loop Do Até no Excel VBA.

Etapa 1: insira um novo módulo no Visual Basic Editor (VBE) para poder escrever código.

Etapa 2: defina um subprocedimento que pode armazenar o código da macro que você escreverá.

Código:

 Sub Do_Until_Ex1 () End Sub 

Etapa 3: defina uma nova variável "X" com o tipo de dados como "Longo". Essa variável pode ser usada como uma condição / critério no loop Do Até.

Código:

 Sub Do_Until_Ex1 () Dim X como sub final longo 

Etapa 4: defina o valor inicial como 1 para a variável X.

Código:

 Sub Do_Until_Ex1 () Dim X como longo X = 1 End Sub 

Etapa 5: inicie o loop com as palavras-chave Faça até.

Código:

 Sub Do_Until_Ex1 () Dim X como longo X = 1 até o final Sub 

Etapa 6: especifique os critérios como X = 11 em Fazer até. Essa é uma condição que permite que o loop se quebre quando True. Isso significa que o loop estará em execução até o valor de X = 11. Assim que o valor de X for igual a 11, o loop será encerrado.

Código:

 Sub Do_Until_Ex1 () Dim X Como longo X = 1 Faça até X = 11 End Sub 

Etapa 7: Agora, use células VBA. Função Value para poder adicionar o quadrado de cada número até X na primeira coluna.

Código:

 Sub Do_Until_Ex1 () Dim X Como longo X = 1 Faça até X = 11 células (X, 1) .Value = X * X End Sub 

Etapa 8: Novamente, precisamos definir o incremento em X por 1, para que toda vez que o loop seja executado e verifique a condição, ele vá para o próximo número e armazene um valor quadrado dele na respectiva célula até o número 11.

Código:

 Sub Do_Until_Ex1 () Dim X Como Longo X = 1 Faça Até X = 11 Células (X, 1) .Valor = X * XX = X + 1 End Sub 

Etapa 9: conclua este loop Do Até inserindo a palavra-chave "Loop" no final do código.

Código:

 Sub Do_Until_Ex1 () Dim X Como longo X = 1 Faça até X = 11 células (X, 1) .Valor = X * XX = X + 1 Sub end de loop 

Nesse código, queríamos ter valores ao quadrado para números começando de 1 a 11 (assim que um valor for 11, o loop termina). Sob cada célula da planilha do Excel (até a célula número 11), os valores serão armazenados. O incremento de 1 unidade permite que um número a cada vez seja aumentado em 1 no valor anterior de X e o valor ao quadrado desse número é impresso na respectiva célula. Por exemplo, o valor ao quadrado de 3 será impresso na terceira célula da folha ativa do excel. Esse loop é executado desde que X não seja igual a 11. Portanto, na célula A1 à célula A10, obtemos os valores ao quadrado do número começando de 1 a 10 (no loop número 11 terminado).

Etapa 10: pressione o botão Executar ou pressione a tecla F5 para executar este código e ver a saída.

Exemplo # 2 - Fazer loop até quando as condições são verificadas no final do loop

Siga as etapas abaixo para aplicar o loop Do Até no Excel VBA.

Etapa 1: Defina um novo subprocedimento no módulo VBE.

Código:

 Sub Do_Until_Ex2 () End Sub 

Etapa 2: defina uma variável "Y" com o tipo de dados como "Longo". Essa variável será útil no looping das condições.

Código:

 Sub Do_Until_Ex2 () Dim Y como sub final longo 

Etapa 3: defina o valor inicial da variável "Y" como 1.

Código:

 Sub Do_Until_Ex2 () Dim Y como longo Y = 1 End Sub 

Etapa 4: adicione a condição Do, digitando Do na próxima linha depois de definir o valor inicial de Y como 1.

Código:

 Sub Do_Until_Ex2 () Dim Y como longo Y = 1 Sub End 

Etapa 5: adicione o trecho de código que você deseja executar no loop Do. Aqui, usaremos o mesmo exemplo acima (isso nos ajudará a saber como as saídas são iguais, mas as compilações são diferentes para dois desses códigos).

Código:

 Sub Do_Until_Ex2 () Dim Y como longo Y = 1 do Sheets ("Exemplo 2"). Células (Y, 1) .Value = Y * Y End Sub 

Etapa 6: após cada iteração do loop, você deseja que o valor seja aumentado em 1 unidade, defina um comando para isso na seção Do.

Código:

 Sub Do_Until_Ex2 () Dim Y como longo Y = 1 do Sheets ("Exemplo 2"). Células (Y, 1) .Valor = Y * YY = Y + 1 End Sub 

Etapa 7: adicione uma declaração de fechamento para esse loop com uma palavra-chave como "Loop".

Código:

 Sub Do_Until_Ex2 () Dim Y como longo Y = 1 planilhas ("Exemplo 2"). Células (Y, 1) .Valor = Y * YY = Y + 1 Sub final de loop 

Aguente! Há algo mais. Você deve adicionar o critério / condição até nesse loop, desta vez após a palavra-chave Loop. Isso permitirá que o compilador verifique a condição no final do loop.

Etapa 8: adicione até Y = 11 como uma condição após a palavra-chave do loop.

Código:

 Sub Do_Until_Ex2 () Dim Y como longo Y = 1 do Sheets ("Exemplo 2"). Células (Y, 1) .Valor = Y * YY = Y + 1 Loop até Y = 11 End Sub 

Etapa 9: Execute este código pressionando F5 ou o botão Executar e veja a mágica na planilha chamada “Exemplo 2”.

Como esse código funciona?

O sistema compara o valor de Y toda vez no loop e o armazena na segunda coluna da planilha denominada "Exemplo 2" linha por linha. Após cada iteração, o valor atual de Y está sendo aumentado em 1 unidade e o valor atualizado está sendo elevado ao quadrado e armazenado. Desde que o valor seja menor que o valor do critério (Y = 11), o código fará o quadrado e o armazenará. Assim que o compilador de valor atinge o valor Y = 11, ele para de executar o código e termina o mesmo.

Ambos os códigos fornecem uma saída semelhante, mas logicamente há uma diferença nas compilações para ambos. No primeiro tipo de código, a condição está sendo verificada no início do loop e, se for False, apenas o loop começará a avaliar a próxima expressão. No entanto, no segundo exemplo, o código começa a executar o loop e a executar instruções Do no início (armazenando os valores em uma memória buffer para as instruções de execução). No final do loop, o compilador cria um critério e verifica o mesmo com o valor do buffer.

Coisas para lembrar

  • O VBA Do Até é exatamente o caso inverso do Excel VBA Do While. O loop Do VBA Do While é executado enquanto a condição estiver sendo VERDADEIRA. Quando a condição é FALSE, o loop Do While é encerrado. Por outro lado, o VBA Do Até é executado enquanto a condição for FALSE. Assim que a condição for TRUE, o loop será encerrado.
  • Há duas formas de procedimento, uma em que a condição é verificada no início do loop e outra em que a condição é verificada no final do loop.

Artigos recomendados

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

  1. VBA While Loop
  2. Fórmula de pesquisa no Excel
  3. Tutoriais completos sobre loops VBA
  4. Tabela de pesquisa no Excel

Categoria: