Como usar os loops For-Next no Excel 2016 VBA

Como usar os loops For-Next no Excel 2016 VBA

O tipo mais simples de loop na programação do Excel VBA é o loop For-Next. O loop é controlado por uma variável de contador, que começa em um valor e termina em outro valor. As instruções entre a instrução For e a instrução Next são as instruções que são repetidas no loop.

Um exemplo para o próximo

O exemplo a seguir usa um loop For-Next para somar os primeiros 1.000 números positivos. A variável Total começa como zero. Em seguida, ocorre o loop. A variável Cnt é o contador de loop. Ele começa como 1 e é incrementado em 1 a cada vez que passa pelo loop. O loop termina quando Cnt for 1.000.

Este exemplo possui apenas uma instrução dentro do loop. Esta declaração adiciona o valor de Cnt à variável Total. Quando o loop termina, um MsgBox exibe a soma dos números.

Sub AddNumbers ()
  Dim Total As Double
  Dim Cnt enquanto longo
  Total = 0
  Para Cnt = 1 a 1000
    Total = Total + Cnt
  Próximo Cnt
  MsgBox Total
End Sub

Como o contador de loop é uma variável normal, você pode escrever código para alterar seu valor dentro do bloco de código entre as instruções For e Next. Essa, entretanto, é uma prática muito ruim .

Exemplos para o próximo com uma etapa

Você pode usar um valor Step para pular alguns valores do contador em um loop For-Next. Aqui está o exemplo anterior, reescrito para somar apenas os números ímpares entre 1 e 1.000:

Sub AddOddNumbers ()
  Dim Total As Double
  Dim Cnt enquanto longo
  Total = 0
  Para Cnt = 1 a 1000 Etapa 2
    Total = Total + Cnt
  Próximo Cnt
  MsgBox Total
End Sub

Desta vez, Cnt começa como 1 e, em seguida, assume os valores de 3, 5, 7 e assim por diante. O valor Step determina como o contador é incrementado. Observe que o valor de loop superior (1000) não é realmente usado porque o valor mais alto de Cnt será 999.

Aqui está outro exemplo que usa um valor Step de 3. Este procedimento funciona com a planilha ativa e aplica sombreamento cinza claro a cada terceira linha, da linha 1 à linha 100.

Sub ShadeEveryThirdRow ()
  Dim i enquanto
  Para i = 1 a 100 Etapa 3
    Linhas (i) .Interior.Color = RGB (200, 200, 200)
  Proximo eu
End Sub

Confira o resultado da execução dessa macro.

Como usar os loops For-Next no Excel 2016 VBA

Usando um loop para aplicar sombreamento de fundo às linhas.

Um exemplo For-Next com uma instrução Exit For

Um loop For-Next também pode incluir uma ou mais instruções Exit For dentro do loop. Quando o VBA encontra essa instrução, o loop termina imediatamente.

O exemplo a seguir demonstra a instrução Exit For. Esta rotina é um procedimento Function, destinado a ser usado em uma fórmula de planilha. A função aceita um argumento (uma variável chamada Str) e retorna os caracteres à esquerda do primeiro dígito numérico. Por exemplo, se o argumento for “KBR98Z”, a função retornará “KBR”.

Função TextPart (Str)
  Dim i enquanto
  TextPart = ““
  Para i = 1 para Len (Str)
    If IsNumeric (Mid (Str, i, 1)) Then
      Sair para
    Outro
      TextPart = TextPart & Mid (Str, i, 1)
    Fim se
  Proximo eu
Função Final

O loop For-Next começa com 1 e termina com o número que representa o número de caracteres na string. O código usa a função Mid do VBA para extrair um único caractere dentro do loop. Se um caractere numérico for encontrado, a instrução Exit For é executada e o loop termina prematuramente.

If the character is not numeric, it is appended to the returned value (which is the same as the function’s name). The only time the loop will examine every character is if the string passed as the argument contains no numeric characters.

A nested For-Next example

You can have any number of statements in the loop and nest For-Next loops inside other For-Next loops.

The following example uses a nested For-Next loop to insert random numbers into a 12-row-by-5-column range of cells. Notice that the routine executes the inner loop (the loop with the Row counter) once for each iteration of the outer loop (the loop with the Col counter). In other words, the routine executes the Cells(Row, Col) = Rnd statement 60 times.

Como usar os loops For-Next no Excel 2016 VBA

These cells were filled by using a nested For-Next loop.

Sub FillRange()
  Dim Col As Long
  Dim Row As Long
  Para Col = 1 a 5
    Para linha = 1 a 12
      Células (Linha, Col) = Rnd
    Próxima linha
  Next Col
End Sub

O próximo exemplo usa loops For-Next aninhados para inicializar uma matriz tridimensional com o valor 100. Esta rotina executa a instrução no meio de todos os loops (a instrução de atribuição) 1.000 vezes (10 * 10 * 10), a cada vez com uma combinação diferente de valores para i, j e k:

Sub NestedLoops ()
  Dim MyArray (10, 10, 10)
  Dim i enquanto
  Dim j As Long
  Dim k As Long
  Para i = 1 a 10
    Para j = 1 a 10
      Para k = 1 a 10
        MyArray (i, j, k) = 100
    Próximo k
  Próximo j
Proximo eu
  'Outras declarações vão aqui
End Sub

Aqui está um exemplo final que usa loops For-Next aninhados, com um valor Step. Este procedimento cria um tabuleiro de xadrez, alterando a cor de fundo das células alternadas.

Como usar os loops For-Next no Excel 2016 VBA

Usando loops para criar um padrão quadriculado.

O contador de linhas gira de 1 a 8. Uma construção If-Then determina qual estrutura For-Next aninhada usar. Para linhas ímpares, o contador Col começa com 2. Para linhas pares, o contador Col começa com 1. Ambos os loops usam um valor Step de 2, portanto, as células alternativas são afetadas. Duas declarações adicionais tornam as células quadradas (como um tabuleiro de damas real).

Sub MakeCheckerboard ()
  Dim R As Long, C As Long
  Para R = 1 a 8
    If WorksheetFunction.IsOdd (R) Then
     Para C = 2 a 8 Etapa 2
       Células (R, C) .Interior.Color = 255
     Próximo C
    Outro
     Para C = 1 a 8 Etapa 2
       Células (R, C) .Interior.Color = 255
     Próximo C
    Fim se
  Próximo R
  Linhas (“1: 8”). Altura da linha = 35
  Colunas (“A: H”). Largura da coluna = 6,5
End Sub

Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.

Apache Open Office

Apache Open Office

Apache OpenOffice oferece um conjunto completo de aplicativos Office que rivalizam com o Microsoft 365, especialmente em Excel, PowerPoint e Word. Ele permite que você gerencie seus projetos de forma mais eficaz e suporta diversos formatos de arquivo.

Baixar iTaxviewer 1.8.7

Baixar iTaxviewer 1.8.7

O software iTaxViewer é o software de leitura de arquivos XML mais popular atualmente. Este software é uma aplicação para leitura de declarações fiscais eletrónicas em formato XML da Direção Geral de Impostos.

Leitor de PDF Nitro

Leitor de PDF Nitro

Nitro PDF Reader é um prático editor de PDF que cobre todas as tarefas básicas que a maioria das pessoas realiza todos os dias com documentos PDF.

Leitor Foxit 12

Leitor Foxit 12

Foxit Reader é principalmente um leitor de PDF e também permite criar arquivos PDF, assiná-los, editá-los e adicionar anotações. Funciona em sistemas operacionais, existem plugins para diversos programas do pacote Microsoft Office.