Excel VBA Loop - Macros fáceis do Excel

Índice

Loop único | Loop duplo | Loop Triplo | Loop Do While

O loop é uma das técnicas de programação mais poderosas. UMA ciclo em 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.

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

Dim i As Integer
Para i = 1 a 6
Células (i, 1). Valor = 100
Proximo eu

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

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.

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

Dim i As Integer, j As Integer
Para i = 1 a 6
Para j = 1 a 2
Células (i, j). Valor = 100
Próximo j
Proximo eu

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

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

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

Dim c As Integer, i As Integer, j As Integer
Para c = 1 a 3
Para i = 1 a 6
Para j = 1 a 2
Planilhas (c). Células (i, j) .Valor = 100
Próximo j
Proximo eu
Próximo c

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

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

Dim i As Integer
i = 1
Faça enquanto eu <6
Células (i, 1). Valor = 20
i = i + 1
Ciclo

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

Explicação: enquanto i for 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 torna-se 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.

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

Dim i As Integer
i = 1
Células Do While (i, 1) .Value ""
Células (i, 2). Valor = Células (i, 1). Valor + 10
i = i + 1
Ciclo

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

Explicação: contanto 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 do que o valor no célula na interseção da linha i com a coluna 1. O VBA do Excel para quando i é igual a 7 porque Cells (7, 1) .Value está vazio. Essa é uma ótima maneira de percorrer qualquer número de linhas em uma planilha.

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

wave wave wave wave wave