Vba

Laço

Loop

Loop único | Loop Duplo | Loop Triplo | Loop Do While

O loop é uma das técnicas de programação mais poderosas. UMA ciclo no Excel VBA permite que você percorra um intervalo de células com apenas algumas linhas de código.



Loop único

Você pode usar um único loop para percorrer um intervalo unidimensional de células.



Colocar um Botão de comando em sua planilha e adicione as seguintes linhas de código:

NenhumeuComo Inteiro

Prai = 1Para6
Células (i, 1). Valor = 100
Próximoeu

Resultado quando você clica no botão de comando na planilha:



Loop Único no Excel VBA

Explicação: As linhas de código entre For e Next serão executadas seis vezes. Para i = 1, o Excel VBA insere o valor 100 na célula na interseção da linha 1 e coluna 1. Quando o Excel VBA atinge o Next i, ele aumenta i com 1 e volta para a instrução For. Para i = 2, o Excel VBA insere o valor 100 na célula na interseção da linha 2 e coluna 1, etc.

Observação: é uma boa prática sempre recuar (tabular) o código entre as palavras For e Next. Isso torna seu código mais fácil de ler.



Loop Duplo

Você pode usar um loop duplo para percorrer um intervalo bidimensional de células.

Colocar um Botão de comando em sua planilha e adicione as seguintes linhas de código:

como encontrar palavras no excel
NenhumeuComo Inteiro, jComo Inteiro

Prai = 1Para6
Praj = 1Paradois
Células (i, j). Valor = 100
Próximoj
Próximoeu

Resultado quando você clica no botão de comando na planilha:

Loop duplo no Excel VBA

Explicação: Para i = 1 e j = 1, o Excel VBA insere o valor 100 na célula na interseção da linha 1 e da coluna 1. Quando o Excel VBA atinge Próximo j, ele aumenta j com 1 e salta de volta para a instrução For j . Para i = 1 e j = 2, o Excel VBA insere o valor 100 na célula na interseção da linha 1 e coluna 2. Em seguida, o Excel VBA ignora o Próximo j porque j só vai de 1 a 2. Quando o Excel VBA atinge o Próximo i , aumenta i com 1 e volta para a instrução For i. Para i = 2 e j = 1, o Excel VBA insere o valor 100 na célula na interseção da linha 2 e coluna 1, etc.

Loop Triplo

Você pode usar um loop triplo para percorrer intervalos bidimensionais em várias planilhas do Excel.

Colocar um Botão de comando em sua planilha e adicione as seguintes linhas de código:

NenhumcComo Inteiro, euComo Inteiro, jComo Inteiro

Prac = 1Para3
Prai = 1Para6
Praj = 1Paradois
Planilhas (c). Células (i, j) .Valor = 100
Próximoj
Próximoeu
Próximoc

Explicação: A única alteração feita em comparação com o código do loop duplo é que adicionamos mais um loop e adicionamos Planilhas (c). na frente de Células para obter o intervalo bidimensional na primeira planilha para c = 1, na segunda planilha para c = 2 e na terceira planilha para c = 3. Baixe o arquivo Excel para ver este resultado.

Loop Do While

Além do loop For Next, existem outros loops no Excel VBA. Por exemplo, o Do While Loop. O código colocado entre Do While e Loop será repetido enquanto a parte após Do While for verdadeira.

1. Coloque um Botão de comando em sua planilha e adicione as seguintes linhas de código:

como inserir gráfico de linha no excel
NenhumeuComoInteiro
i = 1

Fazer Enquantoeu<6
Células (i, 1). Valor = 20
i = i + 1
Laço

Resultado quando você clica no botão de comando na planilha:

Loop Do While

Explicação: desde que i seja menor que 6, o Excel VBA insere o valor 20 na célula na interseção da linha i e coluna 1 e incrementa i por 1. No Excel VBA (e em outras linguagens de programação), o símbolo '= 'significa torna-se. Isso não significa igual. Portanto, i = i + 1 significa que i se torna i + 1. Em outras palavras: pegue o valor presente de i e adicione 1 a ele. Por exemplo, se i = 1, i se torna 1 + 1 = 2. Como resultado, o valor 20 será colocado na coluna A cinco vezes (não seis, porque o VBA do Excel para quando i é igual a 6).

2. Insira alguns números na coluna A.

Qualquer número de linhas

3. Coloque um Botão de comando em sua planilha e adicione as seguintes linhas de código:

NenhumeuComoInteiro
i = 1

Fazer EnquantoCélulas (i, 1) .Valor ''
Células (i, 2) .Valor = Células (i, 1) .Valor + 10
i = i + 1
Laço

Resultado quando você clica no botão de comando na planilha:

Loop Do While Avançado

Explicação: desde que Células (i, 1) .Value não esteja vazio (significa diferente de), o Excel VBA insere o valor na célula na interseção da linha ie coluna 2, que é 10 maior que o valor no célula na interseção da linha ie coluna 1. Excel VBA para quando i é igual a 7 porque Cells (7, 1) .Value está vazio. Esta é uma ótima maneira de percorrer qualquer número de linhas em uma planilha.

1/11 Concluído! Saiba muito mais sobre loops>
Vá para o próximo capítulo: Erros de macro



^