Si utiliza bucles For …​ Next en su programación de macros (¿quién no?), Debe saber que pueden llevar mucho tiempo. Puede minimizar esto marcando solo lo que necesita. Por ejemplo, considere el siguiente código, que verifica una matriz para ver si existe un valor. Si no es así, agrega el valor al final de la matriz. Si es así, el valor no se agrega.

AddIt = False For J = 1 to NumEntries     If NumValues(J) = ToAdd Then AddIt = True Next J If AddIt Then     NumEntries = NumEntries + 1     NumValues(NumEntries) = ToAdd End If

Esto funciona muy bien, pero si la matriz se agranda, puede terminar pasando por el bucle For …​ Next varias veces. Ahora considere el siguiente código, que realiza la misma tarea, pero se descarga del bucle For …​ Next antes de tiempo si se detecta una coincidencia.

AddIt = False For J = 1 to NumEntries     If NumValues(J) = ToAdd Then         AddIt = True         Exit For     End If Next J If AddIt Then     NumEntries = NumEntries + 1     NumValues(NumEntries) = ToAdd End If

Ahora bien, si se encuentra una coincidencia al principio del ciclo, el resto de las iteraciones se omiten porque se encuentra la instrucción Exit For y básicamente se sale del ciclo de inmediato. El resultado es una macro de ejecución más rápida.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (2260) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Exiting_a_For_Next_Loop_Early [Saliendo de un For …​ Next Loop antes].