Excel VBA para cada loop

A palavra-chave "Each" é usada no VBA, juntamente com a função "For". Isso significa que, para cada entidade em uma matriz ou no intervalo, repita o processo no loop for. Basicamente, não inseriremos o intervalo de etapas, ou seja, de 1 a 5 ou 1 a 10; em vez disso, apenas o colocaremos como mostrado na sintaxe abaixo.

Sintaxe:

Para cada nome de objeto no intervalo

Nota: Você precisa ter a guia Desenvolvedor na planilha do Excel.

Se você não vir a guia "Desenvolvedor" no Excel, consulte as etapas abaixo.

Etapa 1: Clique na opção de arquivo .

Etapa 2: O menu suspenso aparece. Clique na guia Opções .

Etapa 3: Depois de clicar em "Opções", uma caixa de diálogo aparece como mostrado abaixo e clique na opção Personalizar faixa de opções.

Etapa 4: quando arrastarmos para baixo as opções da faixa de opções de personalização, encontraremos uma opção para o desenvolvedor, precisamos marcar a caixa que nos permitirá usar o VBA no excel.

Como usar para cada loop no VBA?

Abaixo estão os diferentes exemplos para usar For Each Loop no Excel usando o código VBA.

Você pode fazer o download deste modelo do VBA para cada loop do Excel aqui - VBA para cada modelo do Excel de loop

VBA do Excel para cada loop - Exemplo # 1

Vamos dar um exemplo simples de For Each Loop no VBA. Suponha que abaixo está o conjunto de dados no VBA.

Siga as etapas abaixo para usar o For Each Loop no Excel VBA.

Etapa 1: Clique na guia "Desenvolvedor" e, em seguida, clique na opção "Visual Basic" no lado esquerdo (primeira opção), como mostrado abaixo.

Depois de clicar nele, uma nova janela aparece como mostrado abaixo.

Você notará que ele contém duas guias no lado esquerdo, “Folha1 (Folha1)” e “Este manual de instruções”. A única diferença é "Plan1" quando você deseja executar o código somente para esta planilha específica e, no "ThisWorkbook", podemos escrever e executar um código que pode ser aplicado a toda a pasta de trabalho do Excel.

Etapa 2: Clique duas vezes em “Plan1 (Plan1) e você verá uma tela em branco na qual precisamos escrever o código. Dê um nome ao subconjunto criado. Aqui denominamos "Sub For_Each_Ex1 ()", como mostra a captura de tela abaixo.

Código:

 Sub For_Each_Ex1 () End Sub 

É assim que criamos um subconjunto e automaticamente aparece "End Sub". Esse é o recurso padrão do excel. Se "End Sub" não aparecer, o código não será executado e emitirá um erro.

Etapa 3: declararemos as variáveis ​​como um intervalo.

Código:

 Sub For_Each_Ex1 () Dim Earn, Range1 Como Range End Sub 

Aqui declaramos duas variáveis, "Earn", que usaremos com For Each e "Range1" como o intervalo do conjunto de dados.

Etapa 4: Agora, fixaremos um intervalo, ou seja, um conjunto de dados nos quais precisamos trabalhar usando a palavra-chave "Set", como mostrado abaixo.

Código:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Define Range1 = Range ("A1: A10") End Sub 

Aqui, corrigimos o "Intervalo1" a partir das células do intervalo A1 a A10, que é nosso conjunto de dados.

Etapa 5: Agora executaremos o loop For usando Each keyword.

Código:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Define Range1 = Range ("A1: A10") Para cada Earn In Range1 End Sub 

Aqui, para cada valor em Range, Earn receberá um valor atribuído, pois o loop For é executado passo a passo.

Etapa 6: Agora, usaremos a palavra-chave "Msgbox" para exibir cada entrada de linha no intervalo atribuído.

Código:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Define Range1 = Range ("A1: A10") Para cada Earn In Range1 MsgBox Earn.Value End Sub 

Aqui "Earn.value" exibirá o valor na célula, ou seja, começando na primeira célula do intervalo.

Etapa 7: Agora, queremos executar o próximo valor no intervalo de células fornecido, portanto, temos que usar a palavra-chave "Next" no código. Isso ajudará a avançar ainda mais no intervalo e exibir cada entidade no intervalo de células, uma a uma.

Código:

 Sub For_Each_Ex1 () Dim Earn, Range1 As Range Set Range1 = Range ("A1: A10") Para cada Earn In Range1 MsgBox Earn.Value Next Earn End Sub 

Etapa 8: Execute o código pressionando F5 ou o botão Executar e veja a saída.

No momento em que a linha de código “Next Earn” for executada, “Earn.value” será atribuído com o próximo valor da célula no intervalo. Um por um clique em “OK” e continuará exibindo cada valor no intervalo até que o intervalo de valores termine.

VBA do Excel para cada loop - Exemplo # 2

Vamos dar outro exemplo no qual exibiremos o nome de cada planilha em um arquivo do Excel. Vamos supor que temos folhas nomeadas como abaixo no arquivo do Excel:

Como notamos que existem cerca de 5 folhas no arquivo do Excel, precisamos exibir o nome de cada uma por uma.

Escreveremos e executaremos o código na seção "ThisWorkbook", conforme destacado na caixa vermelha abaixo:

Clique duas vezes nele e enquanto o painel da janela aparecer e comece a escrever o código nele. Siga as etapas abaixo para usar o For Each Loop no Excel VBA:

Etapa 1: Escreveremos o código atribuindo um nome de subconjunto, como mostrado abaixo.

Código:

 Nome da subpágina () End Sub 

Etapa 2: Além disso, podemos começar a escrever diretamente a instrução de loop “For” sem declarar a variável, como mostrado abaixo.

Código:

 Sub pagename () para cada sht no Application.Sheets End Sub 

Aqui "sht" é a nossa variável1, que por padrão é declarada e "Application.sheets" significa que no arquivo considere todas as folhas. Application.fucntion especifica que podemos adicionar qualquer recurso ou função ou ferramenta do Excel a ser considerada durante a execução do código.

Etapa 3: Agora vamos inserir a sintaxe da caixa de mensagem e, juntamente com ela, adicionaremos a sintaxe para exibir o nome da planilha, como mostrado abaixo:

Código:

 Sub pagename () para cada sht No Application.Sheets MsgBox "O nome da planilha é:" & sht.Name End Sub 

Aqui, a instrução que gostaríamos de exibir é “O nome da planilha é:” e, em seguida, digitamos um e comercial (&) que concatena a linha de código e, em seguida, digitamos “sht.Name”, ou seja, seleciona a planilha a partir da folha e exiba o nome.

Etapa 4: Agora, precisamos repetir o processo para exibir o nome de cada planilha. Portanto, usaríamos o "Next sht", como mostrado abaixo:

Código:

 Sub pagename () Para cada sht No Application.Sheets MsgBox "O nome da planilha é:" & sht.Name Próximo sht End Sub 

"Next sht" permitirá que o sistema saiba disso, considere a próxima planilha e exiba seu nome para execução posterior.

Etapa 6: execute o código pressionando F5 ou o botão Executar e veja a saída.

Uma vez que você clica em “OK” e o código executa mais, ele exibirá o próximo nome da planilha. O código será executado até que não haja mais folhas em exibição.

VBA do Excel para cada loop - Exemplo # 3

Vamos agora dar um exemplo em que precisamos somar todos os valores em um determinado conjunto de dados ou em uma matriz. Suponha abaixo é o conjunto de dados :.

Siga as etapas abaixo para usar o For Each Loop no Excel VBA:

Etapa 1: primeiro declare o nome do subconjunto como "eachadd ()", como mostrado abaixo.

Código:

 Sub eachadd () End Sub 

Etapa 2: Agora, declararemos as variáveis ​​necessárias, uma como número inteiro chamado "total", na qual continuamos resumindo os valores das células uma por uma e corrigindo um intervalo de células que contém valores que precisamos adicionar.

Código:

 Sub eachadd () Dim total Como inteiro Dim Range1 Como Range End Sub 

Etapa 3: Depois de declarar a variável e o intervalo, precisamos corrigir o intervalo a ser usado para o loop. Fixaremos esse intervalo de células A1 a A10 usando a palavra-chave "Set", como mostrado abaixo:

Código:

 Subguiachave () Dim total como inteiro Dim Dim Range1 Como Range Define Range1 = Range ("A1: A10") End Sub 

Etapa 4: Agora podemos começar a usar diretamente a função de loop For e declarar diretamente a variável. Aqui, estamos usando "add1" como variável e, por padrão, será declarado pelo sistema.

Código:

 Sub eachadd () Dim total Como Inteiro Dim Range1 Como Range Definir Range1 = Range ("A1: A10") Para cada add1 No Range1 End Sub 

Etapa 5: adicionando cada entidade no intervalo, um por um e na variável declarada "total". Por padrão, o valor de "total" inicialmente é zero. E precisamos adicionar um por um valor de células e, novamente, essa soma deve adicionar "total" novamente.

Código:

 Sub eachadd () Dim total como inteiro Dim Dim Range1 Como intervalo definido Range1 = Range ("A1: A10") Para cada add1 No intervalo1 total = total + add1.Value End Sub 

A instrução acima é executada da direita para a esquerda, ou seja, “add1.value” é o primeiro valor da célula e o adiciona ao “total”, que é zero. Portanto, a soma seria 0 + 1, que é 1. E essa soma como 1 entraria em "total" antes do sinal "=". Essa é uma vantagem, pois a fórmula é executada da esquerda para a direita.

Etapa 6: Agora adicione "Next add1", que ajudará a considerar o próximo valor da célula do intervalo de dados e adicione esse valor na variável "total", como mostrado abaixo.

Código:

 Sub eachadd () Dim total Como Inteiro Dim Range1 Como Range Definir Range1 = Range ("A1: A10") Para Cada add1 No Range1 total = total + add1.Valor Próximo add1 End Sub 

Etapa 6: Pressione “F8” para executar o código por cada linha. Além disso, podemos ver o valor de "total" na captura de tela abaixo.

Da mesma forma, até que o intervalo de células termine, o loop for continuará executando essa soma de uma matriz.

Etapa 7: Agora, usaremos a palavra-chave "Msgbox".

Código:

 Sub eachadd () Dim total como número inteiro Dim Range1 Como intervalo definido Range1 = Range ("A1: A10") Para cada add1 In Range1 total = total + add1.Value Next add1 MsgBox "Somatório final:" & total final Sub 

Etapa 8: Execute o código pressionando F5 ou o botão Executar e veja a saída.

Coisas para lembrar

  • A palavra-chave “Each” é usada apenas na maioria das vezes no caso de uso apenas da função VBA For Loop. Senão, ele tem uso limitado no Excel VBA.
  • A vantagem de cada palavra-chave é que não temos etapas declaradas como 1 a x na instrução "For".

Artigos recomendados

Este é um guia para o VBA para cada loop. Aqui discutimos como usar o For Each Loop no Excel usando o código VBA, juntamente com exemplos práticos e modelo de Excel para download. Abaixo estão alguns artigos úteis do Excel relacionados ao VBA -

  1. VBA Do While Loop
  2. Alternando colunas no Excel
  3. Intervalo de VBA para loop
  4. Contar nomes no Excel
  5. Como executar o código VBA?

Categoria: