Éstas son las construcciones de bucle más comunes. Todo lo que se encuentre entre For y Next se ejecute múltiples veces. Cada vez que se ejecuta el código, una determinada variable de contador (especificada en el parámetro For) tiene un valor diferente.
Tenemos el siguiente código:
For i = 1 To 10
Cells(i, i).Value = i
Next i
Cuando el programa se empieza a ejecutar, hemos asignado a la variable de contador el nombre de i. la primera vez que pasa por el código, la variable i está establecida en 1. La primera vez que se ejecuta el bucle, i es igual a 1, por lo que la celda en la Fila 1 y Columna 1 estará establecida en 1 (mira el dibujo).
Miremos detenidamente lo que sucede cuando VBA llega a la línea que dice Next i. Antes de ejecutar esta línea, la variable i es igual a 1. Durante la ejecución de Next i, VBA debe tomar una decisión. VBA añade 1 a la variable i y la compara con el valor máximo en la cláusula To del parámetro For. Si se encuentra dentro de los límites especificados en la cláusula To, entonces el bucle no se acaba. En este caso, el valor de i se incrementa a 2. La ejecución del código vuelve entonces a la primera línea del código detrás del parámetro For.
La segunda vez que se pasa por el bucle, el valor de i es 2. La celda en Fila2, Columna 2, (es decir, la celda B2) tiene un valor de 2, como muestra el dibujo:
A medida que continúa el proceso, el parámetro Next i avanza i hasta 3, 4, etc. En el décimo paso por el bucle, la celda en Fila 10 Columna 10 tiene asignado el valor de 10.
VBA tiene que tomar ahora una decisión. Añade 1 a la variable i. i tiene ahora un valor de 11, que es mayor que el límite en el bucle For…Next. VBA mueve entonces la ejecución a la siguiente línea en la macro detrás del parámetro Next. En caso de querer volver a utilizar la variable i a lo largo de la macro, es importante darse cuenta de que podría incrementar más allá del límite especificado en la cláusula To del parámetro For.
Al final del bucle se obtiene el resultado que se muestra en el siguiente dibujo:
El uso común para un bucle de estas características es pasar por todas las filas en un conjunto de datos y decidir realizar alguna acción en base a un criterio.
Technorati Tags: 