Excel VBA hacer hasta el bucle

Haga hasta que el ciclo continúe repitiendo las declaraciones hasta que la condición / criterio se vuelva VERDADERO. Ejecutará las declaraciones siempre que las condiciones sean FALSAS. Tan pronto como la condición / criterio se vuelva VERDADERO, termina el ciclo. Puede verse como opuesto al ciclo Do While, donde el ciclo se ejecuta siempre que los criterios sean VERDADEROS y se terminen tan pronto como los criterios sean FALSOS.

Vea el diagrama de flujo a continuación que explica el funcionamiento del bucle Do Before:

Sintaxis de Do Hasta Loop en Excel VBA

Hacer hasta que el bucle tenga dos tipos de sintaxis en Excel VBA.

Sintaxis 1:

 Hacer hasta (Condición) (Declaraciones a ejecutar) Bucle 

Sintaxis 2:

 Hacer (declaraciones a ejecutar) Bucle hasta (condición) 

La diferencia básica entre estas dos sintaxis es de ejecución. En la primera sintaxis, el bucle siempre verificará si la condición es Verdadera o Falsa. Si es False, repetirá el ciclo nuevamente. Tan pronto como la condición / criterio sea verdadero, terminará el ciclo. En este caso, existe la posibilidad de que el ciclo finalice en la primera iteración (si la condición es Verdadera). Por lo tanto, no obtendrá ningún resultado en ese caso. Sin embargo, en la segunda sintaxis, el bucle inicialmente ejecutará las declaraciones y luego verificará la condición si es Verdadero o Falso. Si la condición es False, volverá a ejecutar el mismo conjunto de declaraciones y verificará la condición. Si la primera iteración en sí misma da la condición de True, este ciclo termina, pero antes de eso, se ejecutará una instrucción. En ese caso, obtendremos al menos una iteración (como salida nula).

Finalmente, la salida de los dos códigos será la misma. Sin embargo, la ejecución es algo que difiere de estos dos.

Ejemplo de Excel VBA Hacer hasta el bucle

Veamos los ejemplos de Do Before Loop en Excel VBA.

Puede descargar esta plantilla de Excel de VBA Hacer hasta el bucle aquí - Plantilla de VBA Hacer hasta el bucle de Excel

Ejemplo # 1 - VBA Hacer hasta el bucle cuando las condiciones se verifican al inicio

Siga los pasos a continuación para aplicar el ciclo Do Hasta en Excel VBA.

Paso 1: inserte un nuevo módulo en Visual Basic Editor (VBE) para poder escribir código.

Paso 2: defina un subprocedimiento que pueda almacenar el código de macro que escribirá.

Código:

 Sub Do_Until_Ex1 () End Sub 

Paso 3: Defina una nueva variable "X" con el tipo de datos como "Largo". Esta variable se puede usar como condición / criterio en el ciclo Do Before.

Código:

 Sub Do_Until_Ex1 () Dim X As Long End Sub 

Paso 4: establezca el valor inicial en 1 para la variable X.

Código:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 End Sub 

Paso 5: Comience el ciclo con las palabras clave Do Hasta.

Código:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do hasta End Sub 

Paso 6: especifique los criterios como X = 11 en Hacer hasta. Esta es una condición que permite que el bucle se rompa cuando es verdadero. Significa que el ciclo se ejecutará hasta que el valor de X = 11. Tan pronto como el valor de X sea igual a 11, el ciclo terminará.

Código:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Hasta X = 11 End Sub 

Paso 7: Ahora, use las celdas VBA. Función de valor para poder agregar el cuadrado de cada número hasta X debajo de la primera columna.

Código:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Hasta X = 11 Celdas (X, 1) .Value = X * X End Sub 

Paso 8: Nuevamente, necesitamos establecer el incremento en X en 1, de modo que cada vez que el ciclo se ejecute y verifique la condición, irá al siguiente número y almacenará un valor al cuadrado en la celda respectiva hasta el número 11.

Código:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Hasta X = 11 Celdas (X, 1) .Value = X * XX = X + 1 End Sub 

Paso 9: Complete este ciclo Do Before ingresando la palabra clave "Loop" al final del código.

Código:

 Sub Do_Until_Ex1 () Dim X As Long X = 1 Do Hasta X = 11 Celdas (X, 1) .Value = X * XX = X + 1 Loop End Sub 

En este código, queríamos tener valores cuadrados para números que comiencen desde 1 hasta 11 (Tan pronto como un valor sea 11, el ciclo termina). Debajo de cada celda de la hoja de Excel (hasta el número de celda 11), los valores se almacenarán. El incremento de 1 unidad permite que un número se incremente cada vez en 1 en el valor anterior de X y el valor al cuadrado de ese número se imprime en la celda respectiva. Por ejemplo, el valor al cuadrado para 3 se imprimirá debajo de la tercera celda de la hoja de Excel activa. Este ciclo se ejecuta siempre que X no sea igual a 11. Por lo tanto, debajo de la celda A1 a la celda A10, obtenemos los valores al cuadrado del número comenzando del 1 al 10 (en el ciclo número 11 terminado).

Paso 10: presione el botón Ejecutar o presione la tecla F5 para ejecutar este código y ver el resultado.

Ejemplo # 2 - Hacer hasta el ciclo cuando las condiciones se verifican al final del ciclo

Siga los pasos a continuación para aplicar el ciclo Do Hasta en Excel VBA.

Paso 1: defina un nuevo subprocedimiento en el módulo VBE.

Código:

 Sub Do_Until_Ex2 () End Sub 

Paso 2: Defina una variable "Y" con el tipo de datos como "Largo". Esta variable será útil para recorrer las condiciones.

Código:

 Sub Do_Until_Ex2 () Dim Y As Long End Sub 

Paso 3: Establezca el valor inicial de la variable "Y" en 1.

Código:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 End Sub 

Paso 4: Agregue la condición Do escribiendo Do en la siguiente línea después de establecer el valor inicial de Y en 1.

Código:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do End Sub 

Paso 5: agregue el fragmento de código que desea ejecutar en Do loop. Aquí tomaremos el mismo ejemplo que el anterior (nos ayudará a conocer cómo los resultados son los mismos pero las compilaciones son diferentes para dos de estos códigos).

Código:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Example 2"). Cells (Y, 1) .Value = Y * Y End Sub 

Paso 6: después de cada iteración del bucle, desea que el valor se incremente en 1 unidad, establezca un comando para eso en la sección Do.

Código:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Example 2"). Cells (Y, 1) .Value = Y * YY = Y + 1 End Sub 

Paso 7: Agregue una declaración de cierre para este bucle con una palabra clave como "Bucle".

Código:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Example 2"). Cells (Y, 1) .Value = Y * YY = Y + 1 Loop End Sub 

¡Espere! Hay algo mas Debe agregar el criterio hasta / condición bajo este bucle, esta vez después de la palabra clave Loop. Le permitirá al compilador verificar la condición al final del ciclo.

Paso 8: Agregue hasta Y = 11 como condición después de Loop Keyword.

Código:

 Sub Do_Until_Ex2 () Dim Y As Long Y = 1 Do Sheets ("Example 2"). Cells (Y, 1) .Value = Y * YY = Y + 1 Loop hasta Y = 11 End Sub 

Paso 9: Ejecute este código presionando F5 o el botón Ejecutar y vea la magia debajo de la hoja llamada "Ejemplo 2".

¿Cómo funciona este código?

El sistema se ajusta al valor de Y cada vez bajo el ciclo y lo almacena en la segunda columna de la hoja llamada "Ejemplo 2" fila por fila. Después de cada iteración, el valor actual de Y se incrementa en 1 unidad y el valor actualizado se eleva al cuadrado y se almacena. Siempre que el valor sea menor que el valor del criterio (Y = 11), el código hará el cuadrado y lo almacenará. Tan pronto como el compilador de valores alcanza el valor Y = 11, deja de ejecutar el código y termina el mismo.

Ambos códigos dan una salida similar, pero lógicamente hay una diferencia en las compilaciones para ambos. En el primer tipo de código, la condición se verifica al comienzo del ciclo y, si es False, solo el ciclo comienza a evaluar la siguiente expresión. Sin embargo, en el segundo ejemplo, el código comienza a ejecutar el bucle y a ejecutar declaraciones Do al comienzo (almacenando los valores en una memoria intermedia para las declaraciones de ejecución). Al final del ciclo, el compilador presenta un criterio y lo verifica con el valor del búfer.

Cosas para recordar

  • VBA Do Hasta es exactamente el caso inverso de Excel VBA Do While. El bucle VBA Do While se ejecuta mientras la condición sea VERDADERA. Una vez que la condición es FALSA, el ciclo Do While se termina. Por otro lado, VBA Do Hasta se ejecuta mientras la condición sea FALSA. Tan pronto como la condición sea VERDADERA, el ciclo se termina.
  • Tiene dos formas de procedimiento, una donde se verifica la condición al comienzo del ciclo y otra donde se verifica la condición al final del ciclo.

Artículos recomendados

Esta es una guía de VBA Do Before Loop. Aquí discutimos cómo usar Excel VBA Do Before Loop junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. VBA While Loop
  2. BUSCAR Fórmula en Excel
  3. Tutoriales completos sobre bucles VBA
  4. Tabla de búsqueda en Excel

Categoría: