VBA Loops - Lista dos 4 principais tipos de loops (com exemplos)

Excel VBA Loops

Os loops são comumente usados ​​em todas as linguagens de programação, onde há uma certa necessidade ou critério quando precisamos que um determinado código seja executado em certos momentos, usamos loops para esses códigos, agora existem muitos tipos de loops no VBA, como Do while, Do until, For Loop e For each loop, esses loops ajudam o código a ser executado até que a condição seja atendida.

Deixe-me fazer esta afirmação logo no início. “Se você deseja masterizar em VBA, precisa completar o master do conceito de loops em macros VBA.”

Loop nada mais é do que passar por um intervalo de células, passando por um intervalo de objetos para repetir a mesma tarefa para a coleção de células ou objetos. Em vez de fazer a tarefa em um conjunto separado de linhas de códigos usando loops, podemos encurtar o comprimento do código ao mínimo possível.

Lista dos 4 principais tipos de loops VBA

  1. Para o próximo ciclo
  2. Para Cada Loop
  3. Loop Do While
  4. Do Até Loop

Vamos ver cada um desses tipos em detalhes.

Tipo # 1 - para o próximo loop

O loop For Next nos permite percorrer o intervalo de células e realizar a mesma tarefa para cada célula especificada no loop. Aqui precisamos dizer o número inicial e o número final.

Exemplo

Por exemplo, se você deseja inserir números de série de 1 a 10, a seguir está a maneira tradicional de inserir números de série.

Sub SerialNumber ()

Faixa (“A1”). Valor = 1
Faixa (“A2”). Valor = 2
Faixa (“A3”). Valor = 3
Faixa (“A4”). Valor = 4
Faixa (“A5”). Valor = 5
Faixa ("A6"). Valor =
Faixa 6 ("A7"). Valor =
Faixa 7 ("A8"). Valor =
Faixa 8 ("A9"). Valor = Faixa 9
("A10"). Valor = 10

End Sub

Parece bom, não é? Mas o problema aqui é apenas 10 vezes que precisamos realizar essa tarefa. Mas imagine se você quiser inserir 100 ou 1000 números, você pode escrever o código 100 ou 1000 linhas. É impossível, e é aí que a beleza do loop For Next se torna útil.

Etapa 1: Abra a macro e declare a variável i como Inteiro.

Sub Insert_Serial_Number ()

Dim i As Integer

End Sub

Etapa 2: Agora abra o For Loop . Mencione aqui o início e o fim do loop usando a variável i.

Etapa 3: agora escreva o código que deseja executar. Precisamos inserir números de 1 a 10 nas células A1 a A10. Em vez de aplicar o método Range, aplique o método Cells.

Ele está perguntando o número da linha, pois já declaramos a variável i como um inteiro inicialmente. Seu valor é 1. Portanto, mencione que gosto do número da linha e 1 como número da coluna.

Agora, o valor do valor da célula atual deve ser um, em vez de mencionar o número um, mencione i como o valor. Como cada loop de tempo é executado, o valor de i aumentará em 1.

Agora pressione a tecla F8 para ir para uma linha de cada vez. Pressione F8 até atingir o loop For.

Essa cor amarela é a indicação de que a linha de código selecionada está prestes a ser executada. Posicione um cursor em I, e ele mostrará o valor como zero.

Agora pressione mais uma vez a tecla F8 e coloque um cursor em i & agora o valor é 1.

Portanto, os valores de i em todos os lugares agora são iguais a 1. “ Células (I, 1). Valor = I” significa Células (1, 1). Valor = 1.

Pressione a tecla F8 e veja o valor na célula A1. Você deve ver 1 na célula A1.

Agora, se você pressionar a tecla F8, ele voltará ao loop For mais uma vez porque o limite final da variável i é 10. Desta vez , o valor de I será 2.

Para o próximo loop será executado por 10 vezes e inserir números de série de 1 a 10.

Tipo # 2 - Para Cada Loop

For Each loop em VBA é para loop em uma coleção de objetos. Para o próximo, o loop percorre as células e executa a tarefa, e o loop For Each percorre objetos como planilhas, gráficos, pastas de trabalho e formas.

Usando este loop, podemos percorrer todas as planilhas e realizar algumas tarefas. Por exemplo, você pode percorrer todas as planilhas para ocultar e exibir as planilhas.

Exemplo 1

Se você deseja ocultar todas as planilhas, exceto a planilha em que está trabalhando, como o fará? Se você tiver 20 planilhas na pasta de trabalho, é um processo demorado. Mas com FOR EACH loop, podemos realizar essa tarefa.

Eu tenho 5 planilhas e desejo ocultar todas as planilhas, exceto a planilha “Principal” abaixo do código que faria a tarefa para mim.

Sub To_Hide_All_Sheet ()

Dim Ws como planilha

Para cada Ws em ActiveWorkbook.Worksheets

If Ws.Name “Main” Then
Ws.Visible = xlSheetVeryHidden
End If

Próximo Ws

End Sub

Exemplo # 2

Se você quiser reexibir todas as folhas ocultas, o código abaixo fará o trabalho para você.

Sub To_UnHide_Specific_Sheet ()

Dim Ws como planilha

Para cada Ws em ActiveWorkbook.Worksheets

Ws.Visible = xlSheetVisible

Próximo Ws

End Sub

Tipo # 3 - Faça While Loop

O loop Do While executa a tarefa enquanto a condição fornecida é TRUE, e quando a condição se torna FALSE, ele irá parar o loop. Ao contrário dos outros dois loops, Do While testa a condição no final do loop, não no início.

Vou mostrar o exemplo de inserção de números de série com o loop Do While.

Sub Do_While_Example ()

Dim i As Integer

i = 1
Faça enquanto i <11
células (i, 1) .Valor = i
i = i + 1
Loop

End Sub

O loop acima será executado enquanto i for menor que 11 e continuará inserindo os números de série. No momento em que eu me tornar maior que 11, ele parará de girar.

Tipo # 4 - Faça Até Loop

Ao contrário do loop Do While, o loop Do Until não é executado enquanto a condição for TRUE; em vez disso, ele faz um loop até que a condição seja FALSE. Por exemplo, observe o código abaixo.

Sub Do_Until_Example ()

Dim i As Integer

i = 1
Faça até que i = 11
células (i, 1) .Valor = i
i = i + 1
Loop

End Sub

A única diferença entre o loop Do While & Do Until é o operador que especificamos. Em Do, embora tenhamos mencionado a execução do loop enquanto i for menor que (<), 11, mas no loop do until, mencionamos executar o loop até que i seja igual a (=) a 11.

Coisas para lembrar

  • Há um exemplo de loop VBA do Excel mais avançado, mas abordaremos cada um deles em um artigo separado em detalhes.
  • Cada loop é para variáveis ​​de objeto.
  • Embora Do While & Do Until pareça o mesmo, mencionar a condição é muito importante.
  • Os loops são conceitos muito importantes.

Artigos interessantes...