Instrucción For...NextFor...Next statement

Repite un grupo de instrucciones un número determinado de veces.Repeats a group of statements a specified number of times.

SintaxisSyntax

For counter = start To end [ Step step ]For counter = start To end [ Step step ]
[ instrucciones ][ statements ]
[ Exit For ][ Exit For ]
[ instrucciones ][ statements ]
[ contador ] NextNext [ counter ]


La sintaxis de la instrucción For...Each...Next consta de estas partes:The For…Next statement syntax has these parts:

PartPart DescripciónDescription
countercounter Necesario.Required. Variable numérica que se utiliza como contador de bucle.Numeric variable used as a loop counter. La variable no puede ser un booleano o un elemento matriz.The variable can't be a Boolean or an array element.
startstart Necesario.Required. Valor inicial de contador.Initial value of counter.
endend Obligatorio.Required. Valor final de contador.Final value of counter.
stepstep Opcional.Optional. La cantidad que aumenta contador cada vez que se recorre el bucle.Amount counter is changed each time through the loop. Si no se especifica, el valor predeterminado de paso es uno.If not specified, step defaults to one.
statementsstatements Opcional.Optional. Una o más instrucciones entre For y Next que se ejecutan un número determinado de veces.One or more statements between For and Next that are executed the specified number of times.

ObservacionesRemarks

El step argumento puede ser positivo o negativo.The step argument can be either positive or negative. El valor del argumento step determina el procesamiento del bucle de la siguiente manera.The value of the step argument determines loop processing as follows.

ValorValue El bucle se ejecuta siLoop executes if
Positivo o 0Positive or 0 contador <= fincounter <= end
NegativoNegative contador >= fincounter >= end

Una vez que se hayan ejecutado todas las instrucciones del bucle, step se agrega a contador.After all statements in the loop have executed, step is added to counter. Llegado este punto, bien las instrucciones del bucle se ejecutan de nuevo (según la misma prueba que provocó la ejecución inicial del bucle), bien se sale del bucle y la ejecución continúa con la instrucción que sigue a la instrucción Next.At this point, either the statements in the loop execute again (based on the same test that caused the loop to execute initially), or the loop is exited and execution continues with the statement following the Next statement.

Sugerencia

Cambiar el valor de contador dentro de un bucle podría hacer el código más difícil de leer y depurar.Changing the value of counter while inside a loop can make it more difficult to read and debug your code.

Cualquier número de instrucciones Exit For pueden colocarse en cualquier lugar del bucle como forma alternativa para salir.Any number of Exit For statements may be placed anywhere in the loop as an alternate way to exit. Exit For se utiliza a menudo después de evaluar alguna condición, por ejemplo If... Then, y transfiere el control a la instrucción que viene justo después de Next.Exit For is often used after evaluating some condition, for example If...Then, and transfers control to the statement immediately following Next.

Puede anidar bucles For...Next colocando uno dentro de otro.You can nest For...Next loops by placing one For...Next loop within another. Asigne a cada bucle un nombre único de variable como su contador.Give each loop a unique variable name as its counter. La siguiente construcción es correcta:The following construction is correct:

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

Nota

Si omite contador en una instrucción Next, la ejecución continúa como si contador estuviera incluido.If you omit counter in a Next statement, execution continues as if counter is included. Si se encuentra una instrucción Next antes de su instrucción For correspondiente, se produce un error.If a Next statement is encountered before its corresponding For statement, an error occurs.

EjemploExample

Este ejemplo usa la instrucción For...Next para crear una cadena que contiene 10 instancias de los números de 0 a 9; cada cadena está separada de las demás por un único espacio.This example uses the For...Next statement to create a string that contains 10 instances of the numbers 0 through 9, each string separated from the other by a single space. El bucle externo utiliza una variable de contador de bucle que disminuye cada vez que se recorre el bucle.The outer loop uses a loop counter variable that is decremented each time through the 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 

Vea tambiénSee also

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.