7 Exemplos de For Loops no Microsoft Excel VBA

Anonim

Se você estiver escrevendo um programa VBA e quiser executar a mesma tarefa várias vezes, poderá fazer isso usando VBA para loops. VBA é uma linguagem de programação sequencial. Cada linha de código é executada de cima para baixo até que não haja mais linhas de código para ler. Se você quiser voltar e executar uma tarefa, você deve forçar usando o código de macro. Você obtém resultados com loop.

O For Loop no VBA é um dos tipos mais comuns de loop. O loop For tem duas formas: For Next e For Each In Next. O loop For é normalmente usado para mover-se sequencialmente por uma lista de itens ou números. Para encerrar o loop For em qualquer ponto, podemos usar a instrução exit. For Loop irá girar e girar até que atenda a condição final. Assim que a condição final for atendida, o fluxo de programação continuará para baixo, em sua direção natural.

O loop For… Next tem a seguinte sintaxe: For counter = start_counter To end_counter 'Faça algo aqui (seu código) Próximo contador 

Na verdade, estamos criando um loop que usa variável contador como o "guardião do tempo" do loop. Nós o definimos com um valor igual a start_counter no início do loop e, em seguida, aumente-o em 1 durante cada loop até atingir a condição final. O loop será executado até o momento em que o valor do contador torna-se igual a end_counter. O loop é executado pela última vez quando os valores acima correspondem e, em seguida, o loop para.

Todos os itens acima podem ser confusos para algumas pessoas, então vamos nos preparar e começar a aprender For Loop no Excel com alguns exemplos.

  • Crie uma nova pasta de trabalho do Excel e salve-a com a extensão .xlsm
  • Para iniciar a tela do editor do Visual Basic, use ALT + F11
  • Inserir Novo Módulo
  • Copie o código abaixo no módulo padrão VB

Loop 1 (Exibindo número com msgbox)

Sub Loop1 () Dim StartNumber As Integer Dim EndNumber As Integer EndNumber = 5 For StartNumber = 1 To EndNumber MsgBox StartNumber & "é" & "Your StartNumber" Next StartNumber End Sub 

Explicação do código:

  • O código VBA precisa que você atribua valor a StartNumber, onde EndNumber são variáveis ​​declaradas como inteiros como ponto de partida para o seu loop
  • Esses valores podem ser qualquer número e temos EndNumber como 5
  • StartNumber é iniciado em 1
  • Para StartNumber = 1 To EndNumber significa que o código começará de 1 (StartNumber) a 5 (EndNumber)
  • MsgBox StartNumber & "is" & "Your StartNumber" exibirão a seguinte caixa de mensagem

Loop2 (valores de preenchimento)

Sub Loop2 () 'Preenche as células A1: A56 com valores de X fazendo um loop' --- Comentário 'Aumenta o valor de X em 1 em cada loop' --- Comentário Dim X como Inteiro Para X = 1 a 56 Faixa ("A "& X) .Value = X Próximo X End Sub 

Explicação do código:

  • Atribuímos X como um inteiro
  • Para X = 1 a 56; isso vai começar com 1 e continuar até 56 com um incremento de 1 a cada vez
  • Intervalo ("A" e X) .Valor = X; esta linha armazenará o valor de X e passará do intervalo A1 a A56

Loop3 (preencher as células com a cor de fundo)

Sub Loop3 () 'Preenche as células B1: B56 com as 56 cores de fundo' --- Comentário Dim X como inteiro para X = 1 a 56 Intervalo ("B" e X) .Selecione com Seleção.Interior .ColorIndex = X .Padrão = xlSolid End With Next X End Sub 

Explicação do código:

  • Atribuímos X como um inteiro
  • Para X = 1 a 56 começará com 1 e continuará até 56 com um incremento de 1 a cada vez
  • Intervalo ("B" e X) .Selecione; esta linha irá armazenar o valor de X e selecionar a célula B1 até B56
  • As próximas 4 linhas, ou seja, com Selection.Interior, selecionará o índice de cor do interior e tomará o valor de X desse índice de cor de modo que 1 pertença à cor preta; 2 pertence à cor branca; 3 para vermelho e assim por diante

Loop 4 (valores de preenchimento com incremento de 2)

Por padrão, o valor da Etapa é 1 para frente, no entanto, pode ser definido como um número maior que 1.

Sub Loop4 () 'Preenche cada segunda célula de C1: C50 com valores de X' --- Comentário Dim X As Integer For X = 1 To 50 Step 2 Range ("C" & X) .Value = X Next X End Sub 

Explicação do código:

  • Atribuímos X como um inteiro
  • Para X = 1 a 50 Etapa 2; isso vai começar com 1 em X até 50 com um incremento de 2 a cada vez
  • Intervalo ("C" e X) .Valor = X; esta linha armazenará o valor de X e passará para a faixa C1 a C50

Loop 5 (VBA For Loop em Reverso com Instrução STEP)

Não é necessário que o contador no loop For se mova apenas dos valores baixos para os maiores; em vez disso, o loop For pode ser executado para trás, ou seja, valores altos para baixos.

Mesmo que o valor Step seja 1 por padrão, no entanto, ele pode ser definido como um número na ordem inversa.

Sub Loop5 () 'Preenche células de D1: D50 com valores de X' --- Comentário 'Neste caso, X diminui em 1' --- Comentário Dim X como inteiro, linha como inteiro Linha = 1 Para X = 50 para 0 Etapa -1 Intervalo ("D" e Linha). Valor = X Linha = Linha + 1 Próximo X End Sub 

Explicação do código:

  • Atribuímos X e Row como inteiro
  • A linha contém o valor 1
  • Para X = 50 a 0 Etapa -1; isso vai começar de 50 com decréscimo de 1 em X até 0
  • Intervalo ("D" e Linha) .Valor = X; esta linha armazenará o valor de X e passará para o intervalo D1 a D50

Loop 6 (preenche cada segunda célula em reverso com STEP-2)

No exemplo do loop For acima, podemos usar Step and order para ver se o loop For funciona na direção para frente ou para trás.

Sub Loop6 () 'Preenche cada segunda célula de E1: E100 com valores de X' --- Comentário 'Neste caso, X diminui em 2' --- Comentário Dim X como inteiro, Linha como inteiro Linha = 1 Para X = 100 Para 0 Passo -2 Faixa ("E" e Linha). Valor = X Linha = Linha + 2 Próximo X Fim Sub 

Explicação do código:

  • Atribuímos X e Row como inteiro
  • A linha contém o valor 1
  • Para X = 100 a 0 Etapa -2; isso vai começar de 100 com decréscimo de 2 em X até 0
  • Intervalo ("E" e Linha) .Valor = X; esta linha armazenará o valor de X e passará do intervalo E1 a E100

Loop 7 (Loop For com condição IF: preenche células a partir de uma célula específica)

Isso irá preencher as células da célula F11 com o valor 11 até que X atenda à condição IF

Sub Loop7 () 'Começa a preencher as células F11: F100 com valores de X' --- Comentário 'Isso sairá do loop após 50' --- Comentário Dim X como Inteiro Para X = 11 a 100 Intervalo ("F" & X) .Value = X If X = 50 Then MsgBox ("Bye Bye") Exit For End If Next X End Sub 

Explicação do código:

  • Atribuímos X como um inteiro
  • Para X = 11 a 100; começará em 11 com incremento de 1 em X até que a condição atenda
  • Intervalo ("F" e X) .Valor = X; esta linha armazenará o valor de X e passará para a faixa F11 até que a condição atenda

  • Depois de inserir o valor 50 na célula F50, a seguinte caixa de mensagem será exibida

Conclusão: Com os 7 exemplos acima, podemos aplicar o loop For em nossa parte regular ou em qualquer parte de automação.

Se você gostou de nossos blogs, compartilhe com seus amigos no Facebook. E você também pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar, complementar ou inovar nosso trabalho e torná-lo melhor para você. Escreva-nos no site de e-mail