Lar Mídia social Como usar os Loops For-Next no Excel 2016 VBA - dummies

Como usar os Loops For-Next no Excel 2016 VBA - dummies

Índice:

Vídeo: #25 - Curso de Macros e Excel VBA - Tratamento de Erros (On Error) 2025

Vídeo: #25 - Curso de Macros e Excel VBA - Tratamento de Erros (On Error) 2025
Anonim

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

Um exemplo para próximo exemplo

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 contornos. Ele começa como 1 e é incrementado em 1 cada vez através do loop. O loop termina quando Cnt é 1 000.

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

Sub AddNumbers () Dim Total como Double Dim Cnt As Long 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 codifique para alterar seu valor dentro do bloco de código entre as instruções For e Next. Isso, no entanto, é uma prática muito ruim .

Exemplos de Próxima-Próxima com uma Etapa

Você pode usar um valor de Etapa para ignorar 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 como Double Dim Cnt As Longo Total = 0 Para Cnt = 1 a 1000 Passo 2 Total = Total + Cnt Próximo Cnt MsgBox Total End Sub

Desta vez, Cnt começa como 1 e assume valores de 3, 5, 7 e assim por diante. O valor Step determina como o contador é incrementado. Observe que o valor do 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 folha ativa e aplica sombreamento cinza claro a cada terceira linha, da linha 1 à linha 100.

Sub ShadeEveryThirdRow () Dim i As Long For i = 1 a 100 Passo 3 Linhas (i). Interior. Cor = RGB (200, 200, 200) Próximo i End Sub

Verifique o resultado da execução desta macro.

Usando um loop para aplicar o som de fundo para linhas.

Um exemplo para Next com uma declaração Exit For

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

O exemplo a seguir demonstra a declaração Exit For. Esta rotina é um procedimento de Função, 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 Como Long TextPart =" "Para i = 1 Para Len (Str) Se IsNumeric (Mid (Str, i, 1)) Então Sair Para Else TextPart = TextPart & Mid (Str, i, 1) End If Next i End Function

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 da 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.

Se o caractere não é numérico, ele é anexado ao valor retornado (que é o mesmo que o nome da função). A única vez que o loop irá examinar cada personagem é se a seqüência de caracteres como o argumento não contém caracteres numéricos.

Um exemplo de Próxima Próxima

Você pode ter qualquer número de instruções no loop e aninhar Loops For-Next dentro de outros loops For-Next.

O exemplo a seguir usa um loop For-Next aninhado para inserir números aleatórios em uma faixa de células de 12 linhas por 5 colunas. Observe que a rotina executa o loop interno (o loop com o contador de linhas) uma vez para cada iteração do loop externo (o loop com o contador Col). Em outras palavras, a rotina executa a indicação Cells (Row, Col) = Rnd 60 vezes.

Essas células foram preenchidas usando um loop For-Next aninhado.
Sub FillRange () Dim Col como a linha Dim Dim Long Long para Col = 1 a 5 para Row = 1 a 12 células (Row, Col) = Rnd Next Row Next Col End Sub

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

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

Aqui está um exemplo final que usa loops Aninhados para Próximo, com um valor Step. Este procedimento cria um tabuleiro de damas alterando a cor de fundo das células alternadas.

Usando loops para criar um padrão de xadrez.

O contador de linhas faz um loop de 1 a 8. Uma construção If-Then determina qual estrutura de For-Next aninhada usar. Para as linhas de números ímpares, o contador Col começa com 2. Para as fileiras em número par, o contador Col começa com 1. Ambos os loops usam um valor de Etapa de 2, portanto, as células alternativas são afetadas. Duas declarações adicionais tornam as células quadradas (como um xadrez real).

Sub MakeCheckerboard () Dim R As Long, C Longo para R = 1 a 8 Se WorksheetFunction. IsOdd (R) Então Para C = 2 a 8 Passo 2 Células (R, C). Interior. Cor = 255 Próximo C Else Para C = 1 a 8 Passo 2 Células (R, C). Interior. Cor = 255 Próximo C End If Next R Rows ("1: 8").RowHeight = 35 Colunas ("A: H"). ColumnWidth = 6. 5 End Sub
Como usar os Loops For-Next no Excel 2016 VBA - dummies

Escolha dos editores

Como modelar paredes no SketchUp que se encontram em ângulos não diretos - manequins

Como modelar paredes no SketchUp que se encontram em ângulos não diretos - manequins

Se você estiver lidando com um canto no Sketchup que não é de 90 graus, você pode prosseguir de maneiras diferentes; Usar a ferramenta Intersect Faces é um ótimo lugar para começar. As etapas a seguir elaboram a técnica: Modelar cada segmento de parede reta de forma independente, mas não se sobrepõem às extremidades ainda. Construa cada parede para ...

Com a Ferramenta de Escala do SketchUp - dummies

Com a Ferramenta de Escala do SketchUp - dummies

Os heróis reais raramente são óbvios. A ferramenta Scale é o membro mais incompreendido do kit de ferramentas misericordioso. Novos modelistas assumem que o Scale é para redimensionar as coisas no seu modelo. Isso é tecnicamente verdadeiro, mas a maioria das pessoas só o usa para redimensionar objetos inteiros; o verdadeiro poder da Escala acontece quando você usa ...

Escolha dos editores

Ao se mover para um ambiente híbrido em nuvem pode ser benéfico - dummies

Ao se mover para um ambiente híbrido em nuvem pode ser benéfico - dummies

Para otimizar o benefício econômico de movendo-se para um ambiente de nuvem híbrido, você deve primeiro ter uma boa compreensão de seus requisitos de carga de trabalho. Normalmente, uma organização possui diversos tipos de carga de trabalho para gerenciar em seu centro de dados, e algumas dessas cargas de trabalho serão mais adequadas do que outras para um ambiente de nuvem híbrido. ...

Por que a orientação do serviço é importante para modelos de computação em nuvem - os serviços dummies

Por que a orientação do serviço é importante para modelos de computação em nuvem - os serviços dummies

São importantes para a computação em nuvem a partir de ambos uma infra-estrutura e uma perspectiva de aplicação. Quando você tem algum conhecimento sobre como adotar uma abordagem orientada para o serviço para projetar sistemas de tecnologia, você pode começar a ver a relação entre essa abordagem e a computação em nuvem. A orientação do serviço permeia a nuvem e a nuvem serve como ambiente ...

Híbridos Elementos Fundamentais da Nuvem - manequins

Híbridos Elementos Fundamentais da Nuvem - manequins

A nuvem híbrida requer elementos fundamentais para fazer um modelo híbrido trabalhar no mundo real. Embora existam muitos problemas e considerações técnicas ao usar a nuvem híbrida, a compreensão dos seguintes elementos é particularmente importante: serviços de virtualização: não é surpreendente que muitas empresas tenham aproveitado o tempo para agilizar seus data centers através de tecnologias ...

Escolha dos editores

Como criar e editar a configuração CLI do Junos - manequins

Como criar e editar a configuração CLI do Junos - manequins

Você cria ou edita a configuração do seu dispositivo em o modo de configuração da interface de linha de comando Junos (CLI). Para entrar no modo de configuração, use o comando configure no prompt do modo operacional: wiley @ netnik> configure Iniciando o modo de configuração [editar] wiley @ netnik # Isso permite que você crie ou edite a configuração do candidato. Enter set? Após o prompt do modo de configuração ...

Como criar um chassi virtual de dois ou mais Juniper EX Switches - manequins

Como criar um chassi virtual de dois ou mais Juniper EX Switches - manequins

Quando você deseja criar uma unidade de Chassi Virtual a partir de duas ou mais (até dez) switches da série EX, você normalmente as interconecta usando as portas dedicadas do Chassi Virtual (VCPs) de 64 Gbps na parte traseira do chassi do switch, que são projetadas exclusivamente para interruptores de interconexão (e que não requerem configuração extra no interruptor). Você ...

Como projetar um filtro de firewall Junos - manequins

Como projetar um filtro de firewall Junos - manequins

Para projetar um filtro de firewall Junos corretamente, você precisa saber Como Junos processa os filtros. Há duas considerações básicas a ter em conta para garantir que seus filtros de firewall Junos se comportem da maneira que você pretende: na maioria dos dispositivos, você pode aplicar vários filtros de firewall em uma cadeia ordenada. Se você aplicar o limite-ssh-telnet ...