El bucle For-Next en VBA

En términos de programación, un bucle es una instrucción que nos permitirá ejecutar repetidamente un conjunto de instrucciones hasta que se cumpla la condición que hayamos especificado. Los bucles también son conocidos como ciclos.

La instrucción For-Next

El bucle For-Next es una de las instrucciones más útiles al programar en VBA. La sintaxis de esta instrucción es la siguiente:

For inicialización de variable To límite
{Conjunto de instrucciones que se repetirán}
Next incrementar variable

  • Inicialización de variable: Ya que la instrucción For Next repite un conjunto de instrucciones un número de veces específico, debemos inicializar una variable que irá contando cada una de las repeticiones. Es común encontrar la instrucción escrita como For i = 1 lo cual indica que la variable i llevará la cuenta de las repeticiones que deseamos que inicien en 1.
  • Límite: Además de inicializar la variable que llevará la cuenta de las repeticiones, debemos especificar un límite donde se detendrá el ciclo. Este límite es indicado con la instrucción To. De esta manera, si deseamos hacer un bucle que vaya desde 1 hasta 5 la instrucción la escribiremos como For i = 1 To 5.
  • Incrementar variable: El final del conjunto de instrucciones se indica con la instrucción Next y que va seguida del nombre de la variable que lleva la cuenta para incrementar su valor en uno. Así podemos terminar el bucle con la instrucción Next i.

Ejemplo de un bucle For-Next

A continuación un ejemplo muy sencillo de un bucle For-Next donde la única instrucción que se repite es la de mostrar una ventana de diálogo con el valor de la variable i:

El bucle For Next en VBA

Con este bucle provocaremos que se muestre una ventana de diálogo 5 veces y en cada una de ellas se mostrará el valor actual de la variable i que comenzará con 1 y terminará con 5. Observa el resultado:

Ejemplo de instrucción For Next en VBA

Ya que la variable i comienza con el valor 1, el primer cuadro de diálogo muestra el mensaje “i = 1”, después “i = 2” y así sucesivamente hasta llegar al límite. El bucle For-Next en VBA nos ayudará a crear ciclos que ejecutarán un conjunto de instrucciones hasta alcanzar el límite que hayamos especificado.

Artículos relacionados
 La instrucción If-Then en VBA

4 pensamientos en “El bucle For-Next en VBA

  1. Jhonatan Gonzalez

    Este Bucle tiene un limite maximo?, por que en una macro realizada en el For i = 1 To 46, me sale el error -2147024809 (80070057)

    1. Moisés Ortíz Autor

      Hola Jhonatan, el límite está determinado por la variable que controla el bucle For-Next, pero en tu caso al ser un entero, el límite sería un poco mas de 30 mil, así que es muy probable que el error se ocasionado por otra instrucción.

  2. Humberto

    Hola!
    Quiero hacer un bucle para revisar celda por celda haciendo un “vlookup” condicionado a dos variables. Sin embargo el bucle tiene un límite variable por mes.
    Como puedo condicionar el bucle, sin ponerle un limite, y que pare en el momento en que ya no haya más celdas con información debajo??

    1. Moisés Ortíz Autor

      Hola Humberto, te dejo una opción por si lo quieres hacer con el bucle For-Next:
      For Each c In Range(“A:A”)
      If IsEmpty(c.Value) Then Exit For
      MsgBox c.Value
      Next c

      Se revisarán todos los valores de las celdas en la columna A pero se saldrá del bucle con la primera celda vacía. De lo contrario va mostrando los valores de cada celda.