Saltar en bucle For (Continue)
En VBA, es común usar bucles For para realizar operaciones repetitivas, pero a veces es necesario saltar el resto del bucle y pasar a la siguiente iteración bajo ciertas condiciones.
En este artículo, presentamos cómo usar el comando GoTo para saltar al siguiente bucle en tales casos.
Cómo saltar al siguiente bucle en un bucle For
En resumen, para saltar al siguiente bucle en un bucle For, se usa el comando GoTo.
El comando GoTo es un comando que salta a una etiqueta especificada. Dado que VBA no tiene un comando Continue
, se puede usar el comando GoTo
para establecer una etiqueta justo antes del final del bucle For
y saltar a esa etiqueta con el comando GoTo
para pasar al siguiente bucle.
El siguiente ejemplo de código VBA recorre los números del 1 al 10, imprime los números impares en el registro y salta al siguiente bucle si el número es par.
Public Sub ForLoopWithGoTo()
Dim i As Integer
For i = 1 To 10
If i Mod 2 = 0 Then _ ' Si el número es par
GoTo NextIteration _ ' Saltar al siguiente bucle
End If
Debug.Print i _ ' Si es impar, imprimir el número en el registro
NextIteration:
Next i
End Sub
En este código, si se cumple la condición If i Mod 2 = 0 Then
(es decir, si i es par), el comando GoTo NextIteration
salta a la etiqueta NextIteration:
y pasa a la siguiente iteración del bucle For
.
Puede establecer cualquier condición en la sentencia IF
del código de ejemplo para saltar al siguiente bucle bajo cualquier condición.
Sobre el comando GoTo
El comando GoTo
se usa para saltar el flujo del programa a la posición de una etiqueta especificada.
Una etiqueta es un nombre arbitrario seguido de dos puntos (:) que indica una posición específica en el código.
Puede encontrar más detalles sobre el comando GoTo
en la siguiente página.
Precauciones al usar el comando GoTo
El comando GoTo
está obsoleto o no se implementa en muchos lenguajes de programación actuales.
Esto se debe a que el comando GoTo
puede hacer que el flujo del programa sea opaco y el código difícil de leer.
Además, las etiquetas solo son válidas dentro del mismo procedimiento y no pueden saltar a otro procedimiento o módulo.
El uso excesivo del comando GoTo puede reducir la mantenibilidad del programa, por lo que se recomienda escribir el código utilizando estructuras de control (If-Then-Else, Select Case, etc.) siempre que sea posible.
Entienda que el uso del comando GoTo
en el bucle For
en este caso es una forma excepcional de saltar el bucle bajo ciertas condiciones.
Resumen
En VBA, puede usar el comando GoTo para saltar a la siguiente iteración en un bucle For.
Sin embargo, considere la legibilidad y mantenibilidad del programa y use el comando GoTo solo cuando sea necesario.
Es importante hacer que la lógica del programa sea clara y apuntar a un mejor código.