VBA Do Loop – Guía, Ejemplos, Cómo crear un Do Loop

¿Qué es el bucle Do en VBA??

Un bucle Do de VBA es una subsección dentro de una macroMacros VBAConfigurar macros en Excel VBA es bastante sencillo. La estructura de las macros VBA de Excel implica comenzar con una línea sub() antes de empezar el código de la macro. que será “bucle” o repetir hasta que se cumplan algunos criterios específicos. El codificador puede configurar el bucle para que se repita un número determinado de veces hasta que una determinada variable supere un valor umbral o hasta que se active una celda específica. De hecho, los bucles son bastante robustos en el sentido de que el usuario puede ser creativo con los criterios que terminan el bucle, siempre y cuando entienda cómo funcionan los bucles de VBA. Esto puede llegar a ser muy útil para hacer un modelo financieroQué es la modelización financieraLa modelización financiera se realiza en Excel para prever los resultados financieros de una empresa. Resumen de lo que es la modelización financiera, cómo & por qué construir un modelo. más eficiente.

Una sentencia Do Loop tendrá una sentencia de inicio y una de finalización, con el código a realizar contenido dentro de estas dos sentencias. Esto es como la estructura de una macro, donde la totalidad del código de una macro se mantiene dentro de la sentencia Sub que inicia una macro y la sentencia End Sub que la termina. Las macros pueden contener varios bucles separados, y los bucles pueden contener bucles dentro de sí mismos, indefinidamente.

Para saber más, inicie nuestro curso de modelado financiero de Excel VBA en línea!

Diferentes tipos de bucle

Hay varios tipos diferentes de bucles, y cada tipo realiza de manera diferente.

    Bucle Do Until

    El bucle Do Until continuará repitiéndose hasta que el criterio sea verdadero. El criterio se inserta justo después de “do until” declaración. El bucle termina con el “Bucle” declaración. Un ejemplo sencillo de este bucle es aumentar un contador hasta que alcance un número determinado, como en el ejemplo siguiente.

    Dim n as Integer

    N = 0

    Do Hasta n = 10

    n = n + 1

    Bucle

    En este ejemplo, nosotros’ve establecer una variable entera conocida como “n”. La macro almacena inicialmente un valor de 0 en n. Cuando se ejecuta en el bucle Do Until, el criterio n = 10 no es verdadero, por lo que se ejecuta el proceso dentro del bucle. La primera iteración añade 1 a n, convirtiendo el valor en 1. Como n todavía no es 10, el proceso se repetirá 10 veces, hasta que n sea 10. Una vez que n = 10, la macro pasará el bucle y continuará con el resto de la macro.

    Este tipo de bucle que utiliza un entero es útil para ejecutar un proceso un número determinado de veces. Por ejemplo, puede querer rellenar las diez primeras filas de la columna A con el texto “Empresa n.” Esto se hace de la siguiente manera:

    Dim n as Integer

    N = 0

    Do Hasta que n = 10

    n = n + 1

    Rango(“A” & n).Valor = “Empresa “ & n

    Bucle

    La ejecución de esta macro llenará la celda A1 con la empresa 1, la celda A2 con la empresa 2, y así sucesivamente hasta que la celda A10 se llene con la empresa 10. En la celda A10, el criterio do until n = 10 se habrá cumplido, por lo que la macro terminará el bucle y seguirá adelante.

    Para aprender más, inicie nuestro curso de modelado financiero de Excel VBA en línea!

    Bucle Do While

    A diferencia del bucle do until, el bucle do while realizará el bucle hasta que el criterio sea falso. En otras palabras, el bucle Do realizará mientras se cumplan los criterios. Parece ser exactamente lo contrario del bucle do until.

    Si utilizáramos exactamente el mismo ejemplo de macro anterior, pero sustituyendo do until por do while, la macro simplemente saltará el bucle. Esto se debe a que n es 0 al inicio del proceso, y el bucle sólo se ejecutará mientras n = 10. Como n sólo puede llegar a 10 a través del proceso del bucle, nunca puede llegar a 10, por lo que se saltará el bucle.

    En cambio, para realizar el mismo proceso dentro del bucle do while, deberíamos utilizar una desigualdad.

    Dim n as Integer

    N = 0

    Do while n < 11

    n = n + 1

    Rango(“A” & n).Valor = “Empresa “ & n

    Bucle

    Observe que la desigualdad utiliza 11 en lugar de 10. Esto se debe a que la macro necesita ejecutarse hasta llegar a la empresa 10. Si el criterio del bucle se estableció en n < 10, el bucle terminaría en la empresa 9 ya que sólo se realizará mientras n sea menor que 10. Como 10 no es menor que 10, terminará justo antes de llegar a la Compañía 10.

    Múltiples criterios usando AND y OR con el bucle Do

    Con estos bucles, también se pueden incluir varios criterios incluyendo dos expresiones separadas por el operador AND u OR. Estos operadores se explican por sí mismos.

    Un bucle do until con dos criterios separados por AND se ejecutará hasta que se cumplan ambos criterios. Un bucle do until con dos criterios separados por OR se ejecutará hasta que se cumpla cualquiera de los criterios.

    Un bucle do while con dos criterios AND se ejecutará mientras se cumplan ambos criterios.

    Un bucle do while con dos criterios OR se ejecutará mientras se cumpla al menos uno de los criterios.

    El uso de múltiples criterios puede llegar a ser muy importante en la modelización financiera. Por ejemplo, un usuario puede requerir que dos ratios de apalancamientoRatios de apalancamientoUn ratio de apalancamiento indica el nivel de deuda contraída por una entidad empresarial frente a otras varias cuentas de su balance, cuenta de resultados o estado de flujos de efectivo. están por encima de ciertos valores antes de que se ejecute una determinada macro.

    Criterios no numéricos en el bucle Do

    En un bucle For, el proceso anterior se puede simplificar. El bucle forVBA For LoopEn un bucle For de VBA, el proceso se repetirá un cierto número de veces hasta que se cumplan los criterios. Los bucles For de VBA son menos dinámicos que los bucles Do. tiene la ventaja sobre los bucles do porque crea automáticamente una variable en el lugar de n en un solo paso. Sin embargo, los bucles tienen ciertas ventajas en comparación con los bucles for.

    Mientras que los bucles for sólo pueden utilizarse generalmente con variables numéricas, los bucles do pueden tener criterios que utilicen otros tipos de datos, como cadenas y fechas. Se puede establecer un bucle do para que se ejecute sólo hasta que llegue un determinado dato. Por ejemplo, tal vez el usuario quiera que la macro se ejecute sólo para el año 2017, y que no se ejecute cuando pase el año. Esto puede lograrse con una variable de fecha y estableciendo el criterio como Do Until [DateVariable] = 1/1/2018.

    Tal vez el usuario quiera, en cambio, que la macro sólo se ejecute mientras una determinada celda esté vacía, y no se ejecute cuando esa celda se llene. Esto se puede lograr con los criterios como Do Until Range(“A5”).Valor = “”. El “” se refiere a una celda en blanco. Nota: una celda que contiene un espacio puede parecer en blanco, pero no es considerada como una celda en blanco por VBAExcel VBA significa Visual Basic for Applications. Excel VBA es Microsoft’El lenguaje de programación de Excel y de todos los demás programas de Microsoft Office, como Word y PowerPoint. Todos los programas de la suite Office comparten un lenguaje de programación común..

    Para aprender más, inicie nuestro curso de modelado financiero de Excel VBA en línea!

    Recursos adicionales

    Gracias por leer esta guía de nuestro sitio web sobre cómo crear un bucle Do en VBA. Para continuar avanzando en sus habilidades, estos recursos adicionales de nuestro sitio web serán útiles:

      Deja un comentario