Como usar os para a próxima voltas no excel 2016 vba

Video: Microsoft Office Excel 2016 and VBA

O tipo mais simples de ciclo na programação Excel VBA é um loop For-Next. O entrelaçamento é controlada por uma variável do contador, que começa no valor um e pára no outro valor. As instruções entre a instrução For ea instrução Em seguida, estão as declarações que são repetidas no circuito.

Um exemplo para-Próximo

O exemplo a seguir utiliza um ciclo Para-Próximo para somar os primeiros 1.000 números positivos. A variável total começa como zero. Então o looping ocorre. O Cnt variável é o contador de ciclo. Ele começa como 1 e é incrementado por 1 cada vez através do loop. O loop termina quando Cnt, 1000.

Video: Excel 2016 VBA – Grundlagen Tutorial: Trailer |video2brain.com

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

Sub AddNumbers () Dim total Como DoubleDim Cnt Como LongTotal = 0For Cnt = 1 Para 1000Total = Total + CntNext CntMsgBox TotalEnd Sub

Porque o contador de loop é uma variável normal, você pode escrever código para alterar seu valor dentro do bloco de código entre o Para e as demonstrações Próxima. Isso, no entanto, é um muito mal prática.

Video: CommandButton MouseMove Excel VBA 2016

Para-Seguintes exemplos com um Passo

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

AddOddNumbers sub () Dim total Como DoubleDim Cnt Como LongTotal = 0For Cnt = 1 Para 1000 Passo 2Total = Total + CntNext CntMsgBox TotalEnd Sub

Desta vez, Cnt começa como 1 e, em seguida, assume valores de 3, 5, 7, e assim por diante. O valor Passo determina como o contador é incrementado. Note-se que o valor de laçada superior (1000) não é realmente usado porque o valor mais elevado de Cnt será 999.

Aqui está outro exemplo que usa um valor Passo de 3. Este procedimento trabalha com a planilha ativa e aplica-se a luz de sombreamento cinza para cada terceira fila, da linha 1 para a linha 100.

Sub ShadeEveryThirdRow () Dim i As Longfor i = 1 a 100 Passo 3Rows (i) .Interior.Color = RGB (200, 200, 200) Próximo IEND sub

Confira o resultado da execução deste macro.

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

A For-Next exemplo, com uma saída para declaração

A For-Next loop também pode incluir um ou mais Exit Para instruções dentro do loop. Quando VBA encontra esta declaração, o loop termina imediatamente.



O exemplo a seguir demonstra a saída para declaração. Esta rotina é um procedimento Function, destina-se a ser utilizado em uma fórmula de folha de cálculo. 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 é “KBR98Z”, a função retorna “KBR.”

Função TextPart (Str) Dim i As LongTextPart = ““For i = 1 To Len (Str) Se IsNumeric (Mid (Str, i, 1)) emSair ForElseTextPart = TextPart & Mediana (Str, i, 1) End Function IfNext IEND

O For-Next loop começa com 1 e termina com o número que representa o número de caracteres na seqüência. 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 saída para instrução é executada, e o laço termina prematuramente.

Se o personagem 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 string passada como o argumento não contém caracteres numéricos.

Um aninhados Por exemplo Próximo-

Você pode ter qualquer número de instruções no loop e ninho para a próxima laços dentro de outros laços para a próxima.

Video: Calendario VBA nativo para Excel – 2007 – 2010 – 2013 – 2016

O exemplo a seguir utiliza um For-Next repetição aninhada para inserir números aleatórios em uma gama de células de 12 linha-por-5-coluna. Observe que a rotina executa o loop interno (O ciclo com o contador de linha) uma vez para cada iteração do espira externa (O ciclo com o contra-Col). Em outras palavras, a rotina executa as células (linha, Col) = instrução Aleat 60 vezes.

Estas células foram preenchidas usando um loop aninhado Para-Próximo.
Estas células foram preenchidas usando um loop aninhado Para-Próximo.
Sub FillRange () Dim Col Como LongDim linha como Longfor Col = 1 Para 5Para Fila = 1 Para 12Cells (Row, Col) = RndNext RowNext ColEnd sub

O próximo exemplo usa aninhados loops para-Next 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) 1000 vezes (10 * 10 * 10), cada vez com uma combinação diferente de valores de i, j, k e:

Sub NestedLoops () Dim MeuArray (10, 10, 10) Dim i As LongDim j Como LongDim k Como Longfor i = 1 a 10 Porque j = 1 a 10 Porque k = 1 Para 10MyArray (i, j, k) = 100Next kNext jNext i "Outras declarações ir hereEnd Sub

Aqui está um exemplo final que usa nested para a próxima loops, com um valor de Step. Este procedimento cria um tabuleiro de xadrez, alterando a cor das células alternadas fundo.

Usando loops para criar um padrão xadrez.
Usando loops para criar um padrão xadrez.

O contador de linha ciclos de 1 a 8. Uma If-Then construir determina qual encaixado para o Próximo-estrutura a usar. Para as linhas ímpares, o contador inicia-se com Col 2. Para as linhas de número par, o contador inicia-se com Col 1. Ambos os loops de usar um valor de Passo 2, de modo que as células alternadas são afectados. Duas declarações adicionais tornam as células quadrado (como um tabuleiro de xadrez real).

Sub MakeCheckerboard () Dim R Contanto, C Como Longfor R = 1 Para 8Se WorksheetFunction.IsOdd (R) ThenFor C = 2 a 8 Passo 2Cells (R, C) = .Interior.Color 255Next CElseFor C = 1 a 8 2Cells Passo (R, C) = .Interior.Color 255Next cend IfNext RRows ( “1: 8”) AlturaDaLinha = 35Columns.. ( “A: H”) = ColumnWidth 6.5End Sub

Publicações relacionadas