Para o próximo loop no Excel VBA - um guia para iniciantes com exemplos

No VBA, o loop é usado quando você precisa executar a mesma tarefa várias vezes até que uma condição seja atendida (ou até que uma condição seja verdadeira).

Neste tutorial, você aprenderá a usar o For Next Loop no Excel VBA.

Se você estiver interessado em aprender VBA da maneira mais fácil, confira meu Treinamento Online Excel VBA.

Usando FOR NEXT Loop no Excel VBA

O Loop ‘For Next’ funciona executando o loop o número especificado de vezes.

Por exemplo, se eu pedir a você para adicionar os inteiros de 1 a 10 manualmente, você adicionaria os primeiros dois números, então adicionaria o terceiro número ao resultado, então adicionaria o quarto número ao resultado, e assim por diante …

Não é?

A mesma lógica é usada no loop For Next no VBA.

Você especifica quantas vezes deseja que o loop seja executado e também o que deseja que o código faça cada vez que o loop for executado.

Aqui está o formato de loop For Next que você precisa usar no VBA para adicionar os primeiros 10 números inteiros.

Para i = 1 a 10 [adicione o i-ésimo inteiro positivo ao resultado] Próximo i

Agora vamos dar uma olhada em alguns exemplos de como usar o loop For Next.

Exemplo 1: Adicionando os 10 primeiros inteiros positivos

Abaixo está o código que adicionará os primeiros 10 inteiros positivos usando um loop For Next. Em seguida, exibirá uma caixa de mensagem mostrando a soma desses números.

Sub AddNumbers () Dim Total As Integer Dim Count As Integer Total = 0 For Count = 1 To 10 Total = Total + Count Next Count MsgBox Total End Sub

Neste código, o valor de Total é definido como 0 antes de entrar no loop For Next.

Depois de entrar no loop, ele mantém o valor total após cada loop. Portanto, após o primeiro loop, quando Counter é 1, o valor ‘Total’ torna-se 1 e, após o segundo loop, torna-se 3 (1 + 2) e assim por diante.

E, finalmente, quando o loop termina e quando Total tem a soma dos primeiros 10 inteiros positivos, um MsgBox simplesmente exibe o resultado em uma caixa de mensagem.

Clique aqui para baixar o arquivo de exemplo

Exemplo 2: Adicionando os primeiros 5 números inteiros positivos pares

Para somar os primeiros cinco inteiros positivos pares (ou seja, 2,4,6,8 e 10), você precisa de um código semelhante com uma condição para considerar apenas os números pares e ignorar os números ímpares.

Aqui está um código que fará isso:

Sub AddEvenNumbers () Dim Total As Integer Dim Count As Integer Total = 0 For Count = 2 a 10 Step 2 Total = Total + Count Next Count MsgBox Total End Sub

Observe que iniciamos o valor Count em 2 e também usamos a Etapa 2 na sintaxe For.

A etapa 2 diria ao código para incrementar o valor de ‘Contagem’ em 2 toda vez que o loop for executado. Portanto, o valor de Contagem começa em 2 e então se torna 4, 6, 8 e 10 conforme ocorre o loop.

NOTA: Outra maneira de fazer isso seria executar o loop de 1 a 10 e, dentro do loop, verificar se o número é par ou ímpar. No entanto, usar Step, neste caso, é uma maneira mais eficiente, pois não exige que o loop seja executado 10 vezes, mas apenas 5 vezes.

Clique aqui para baixar o arquivo de exemplo.

Exemplo 3: Obtenha a parte numérica de uma string alfanumérica

O loop ‘For Next’ também pode ser usado para percorrer cada caractere em uma string.

Por exemplo, se você tiver uma lista de strings alfanuméricas, poderá usar o loop For Next para extrair os números dela (conforme mostrado abaixo):

Aqui está um código que cria uma função personalizada em VBA que pode ser usada como qualquer outra função de planilha.

Ele extrai a parte numérica da string alfanumérica.

Função GETNUMERIC (Cl As Range) Dim i As Integer Dim Result as Long For i = 1 To Len (Cl) If IsNumeric (Mid (Cl, i, 1)) Then Result = Result & Mid (Cl, i, 1) End If Next i GetNumeric = Result End Function

Neste código, o número de vezes que o loop é executado depende do comprimento da string alfanumérica (ele usa a função LEN para encontrar o comprimento da string).

Você precisa colocar esta função na janela de código do módulo e, em seguida, pode usá-la como qualquer outra função de planilha.

Clique aqui para baixar o arquivo de exemplo.

Exemplo 4: Obtendo números aleatórios no intervalo selecionado

Suponha que você queira inserir rapidamente números aleatórios nas células selecionadas, aqui está o código que fará isso.

SubRandomNumbers () Dim MyRange como intervalo Dim i As Integer, j As Integer Defina MyRange = Selection For i = 1 To MyRange.Columns.Count Para j = 1 To MyRange.Rows.Count MyRange.Cells (j, i) = Rnd Próximo j Próximo i End Sub

Este é um exemplo de loop For Next aninhado, onde um loop For é usado dentro de um Loop For.

Suponha que você faça uma seleção de 10 linhas e 4 colunas, o valor de i varia de 1 a 4 e o valor de j varia de 1 a 10.

Quando o primeiro loop For é executado, o valor de i é 1. Ele então se move para o segundo loop For que é executado 10 vezes (para cada linha).

Uma vez que o segundo loop For foi executado 10 vezes, ele volta para o primeiro loop For, onde agora o valor de i torna-se 2. Novamente, o próximo loop For é executado por 10 vezes.

É assim que funciona o loop For Next aninhado.

Clique aqui para baixar o arquivo de exemplo.

Você também pode gostar dos seguintes tutoriais do Excel VBA:

  • Trabalhando com células e intervalos no Excel VBA.
  • Trabalhando com planilhas no Excel VBA.
  • Trabalhando com pastas de trabalho usando VBA.
  • Usando instruções IF Then Else em VBA.
  • Excel VBA Select Case.
  • Criando uma função definida pelo usuário no Excel.
  • Eventos do Excel VBA - um guia fácil (e completo)
  • Como gravar uma macro no Excel.
  • Como executar uma macro no Excel.
  • Como criar um suplemento no Excel.
  • Como salvar e reutilizar macro usando a pasta de trabalho macro pessoal do Excel.
  • Exemplos úteis de macros do Excel para iniciantes.
  • Usando a função InStr em VBA.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave