Instrução For...Next
Repete um grupo de instruções enquanto o contador de ciclos se aproxima do valor final.
Sintaxe
Parao contador=startToend [ Stepstep ]
[ 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 argumentode passo 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>= fim |
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
- Acelerando para... Próximos Loops
- Usar para... Instruções Avançar
- Para cada um... Instrução Avançar
- Tipos de dados
- Instruções
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.