Instrução For...Next

Repete um grupo de instruções de acordo com um número de vezes especificado.

Sintaxe

For contador = início To fim [ Step etapa ]
[ instruções ]
[ Exit For ]
[ instruções ]
Next [ contador ]

A sintaxe da instrução For…Next possui as seguintes partes:

Parte Descrição
contador Obrigatório. Variável numérica utilizada como contador de loop. A variável não pode ser um elemento Booliano ou matriz.
início Obrigatório. Valor inicial de contador.
fim Obrigatório. Valor final de contador.
etapa Opcional. Quantidade de alterações de contador a cada vez no loop. Se não for especificado, etapa terá um como padrão.
instruções Opcional. Uma ou mais instruções entre For e Next executadas de acordo com o número de vezes especificado.

Comentários

O argumento etapa pode ser positivo ou negativo. O valor do argumento etapa determina o processamento do loop da seguinte maneira.

Valor O loop será executado se
Positivo ou 0 contador <= fim
Negativo contador >= end

Após a execução de todas as instruções no loop, etapa é adicionada a contador. Neste ponto, as instruções no loop são executadas novamente (com base no mesmo teste que causou a execução inicial), ou ocorre a saída do loop e a execução continua com a instrução seguinte à instrução Next.

Dica

A alteração do valor de contador dentro de um loop pode dificultar ainda mais a leitura e depuração de seu código.

É possível inserir quantas instruções Exit For você quiser, em qualquer lugar do loop, como uma alternativa para sair. Normalmente, Exit For é usada após a avaliação de alguma condição, por exemplo If...Then, e transfere o controle para a instrução imediatamente após Next.

Você pode aninhar loops For...Next colocando um loop For…Next dentro de outro. Nomeie cada loop com uma variável exclusiva como seu contador. A construção a seguir está correta:

For I = 1 To 10 
 For J = 1 To 10 
 For K = 1 To 10 
 ... 
 Next K 
 Next J 
Next I 

Observação

Se você omitir contador em uma instrução Next, a execução continuará como se contador estivesse incluída. Se uma instrução Next for encontrada antes de sua instrução For correspondente, ocorrerá um erro.

Exemplo

Este exemplo usa a instrução For...Next para criar uma cadeia de caracteres que contém 10 instâncias dos números 0 a 9, cada cadeia de caracteres separada da outra por um único espaço. O loop externo usa uma variável de contagem de loop que será reduzida durante o loop.

Dim Words, Chars, MyString 
For Words = 10 To 1 Step -1 ' Set up 10 repetitions. 
 For Chars = 0 To 9 ' Set up 10 repetitions. 
 MyString = MyString & Chars ' Append number to string. 
 Next Chars ' Increment counter 
 MyString = MyString & " " ' Append a space. 
Next Words 

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.