¿cómo utilizar el bucle do while en vba?
VBA Do while es un bucle en el que necesita especificar una condición y esa condición debe permanecer verdadera para que se ejecute el bucle. En palabras simples, primero verifica que la condición que especificaste es verdadera o no y si esa condición es verdadera ejecuta el bucle, de lo contrario nada.
En cada iteración, prueba la condición y solo entonces ejecuta la instrucción. Imagine que desea agregar hojas de trabajo en Excel pero el recuento total de hojas de trabajo es 12 o menos. En este caso, puede utilizar el bucle do- while para escribir este código.
Sintaxis
Aquí está la sintaxis de VBA para cada bucle posterior.
Do While Condition [statements] Loop
- Condición: esta es la condición que usted especifica y esta condición debe ser verdadera para ejecutar el bucle.
- Declaración : Las líneas de código en las que desea que el bucle Do While ejecute la condición son verdaderas.
- Bucle : esta es la declaración final de una iteración del bucle y le dice a VBA que regrese para probar la condición nuevamente.
Ejemplo para entender el bucle DO While
Para comprender Do While Loop, escribamos un código para agregar hojas de trabajo a un libro de trabajo cuando el número total de hojas de trabajo sea inferior a doce. No necesita decirle a VBA cuántas hojas agregar y siempre tendrá un total de 12 hojas cada vez que ejecute este código.
Utilice los siguientes pasos:
- En primer lugar, debes escribir «Hacer mientras» en el teclado.
- A continuación, debe escribir una condición que pueda verificar si el número total de hojas de trabajo en el libro es inferior a doce.
- Para hacer esto, necesita usar el código a continuación, que cuenta el número total de hojas de trabajo y luego lo compara con el número doce.
- A continuación, debe escribir el código para agregar una hoja de trabajo. Este código se ejecutará cuando la condición que especificó sea verdadera.
- Y, al final, escribe la palabra clave “Loop” para completar el código.
Aquí está el código completo que acaba de escribir:
Sub vba_do_while_loop() Do While ActiveWorkbook.Worksheets.Count < 12 Sheets.Add Loop End Sub
Ahora déjame explicarte cómo funciona este código: la condición que especificaste verifica el número total de hojas de trabajo en el libro de trabajo, y luego tienes un operador menor que que compara el número de hojas de trabajo con doce.
Cuando el número de hojas de trabajo es inferior a doce, el ciclo continuará ejecutándose y seguirá agregando nuevas hojas de trabajo, pero una vez que el número de hojas de trabajo llegue a doce, el ciclo se detendrá.
En términos simples, esto significa que el ciclo continuará ejecutándose mientras el número de hojas de trabajo sea inferior a doce.
Aquí está la cuestión, con el código que acaba de escribir no necesita especificar la cantidad de hojas de trabajo que desea agregar, pero si va al siguiente ciclo, debe especificar la cantidad de hojas de cálculo que desea agregar.
Haz un bucle para
Do Loop While es una versión extendida de Do While Loop, ya que funciona igual pero hay una ligera diferencia al probar la condición.
En Do Loop, mientras ejecuta una iteración del bucle antes de probar la condición que especificó y, si la condición es verdadera, continuará el bucle.
Digamos que desea escribir algún código para verificar una contraseña para ejecutar algún código y continuar el bucle mientras la contraseña es incorrecta (lo vemos en el ejemplo).
Sintaxis
Aquí está la sintaxis de VBA Do Loop While.
- Do: esta es la palabra clave inicial del bucle Do While.
- Declaración: estas son las líneas de código que desea ejecutar en el bucle.
- Bucle Mientras: Esta es la palabra clave para continuar el bucle y probar la condición que especificó.
- Condición: esta es la condición que desea probar antes de que el ciclo comience su segunda iteración y continúe.
Como puede ver en la sintaxis de Do Loop While, primero ejecutará la declaración una vez, luego irá a la condición y la probará, y si esa condición es verdadera, iniciará el ciclo y continuará mientras La condición es verdadero.
Ejemplo para entender el bucle DO mientras
Para comprender el ciclo do while, escribamos un código para mostrar un cuadro de entrada y pedirle al usuario que ingrese la contraseña.
Este cuadro de entrada seguirá mostrando claramente que la contraseña ingresada por el usuario es incorrecta hasta por cinco intentos y luego el cuadro de entrada desaparecerá sin realizar el procedimiento.
- Primero, declare dos variables que necesita para almacenar la contraseña y el contador de intentos.
- Después de eso, escriba la palabra clave «Hacer». Aquí no es necesario definir la condición primero como vio en la sintaxis.
- A continuación, debe escribir una línea de código para mostrar el cuadro de entrada que solicita al usuario que ingrese la contraseña.
- Desde aquí, debe configurar un contador que pueda contar hasta cinco (se suma con cada iteración del bucle).
- Ahora escriba la palabra clave «Loop While» y establezca dos condiciones que puedan verificar el valor ingresado por el usuario y en el cuadro de entrada y puedan probar el valor del contador si es menor que 5.
- Al final, escribe el código que deseas ejecutar. Aquí estoy usando la declaración IF que mostrará un cuadro de mensaje si la contraseña ingresada por el usuario es correcta.
Sub vba_do_loop_while() Dim varPassword As Variant, i As Double Do varPassword = InputBox _ ("Enter the password to start the procedure:", _ "Check Password 1.0") i = i + 1 Loop While varPassword <> "CorrectPassword" And i < 5 If varPassword = "CorrectPassword" Then MsgBox "Your Password is Correct" End If End Sub
Déjame explicarte este código.
- En la primera parte de este código tiene el bucle do while que mostrará un cuadro de entrada al usuario y le pedirá una contraseña .
- Y si la contraseña es incorrecta, continuará ejecutando el ciclo hasta que el usuario ingrese la contraseña correcta.
- Pero como estás usando un contador para contar las iteraciones del bucle y una vez que este contador llega a 5, el bucle se detendrá .