La estructura Do...Loop se utiliza cuando se tenga que repetir un determinado número de instrucciones durante un número indefinido de veces, hasta que cumpla una condición. Asimismo, permite elegir si se debe finalizar el bucle cuando la condición False o cuando es True por primera vez.
Ante ello, se debe seguir algunas pautas con la finalidad de evitar posibles errores:
- La condición comprende la comparación de dos valores, pero también puede ser cualquier expresión que da como resultado un valor de Boolean (True o False). Esto incluye los valores de otros tipos de datos, como los numéricos, que han sido convertidos a valores de este tipo.
- Sólo se puede usar While o Until para especificar la condición al principio o al final del bucle solo una vez.
- Si la condición se da al principio del bucle (en la instrucción Do), puede que no se ejecute ni una vez. En el otro caso, si se prueba al final del bucle (en la instrucción Loop), el bucle siempre se ejecuta al menos una vez.
- Se puede formar bucles externos Do el cual puede contener otro bucles
- Si se da el caso de obtener un bucle sin fin, se puede utilizar el Exit Do para interrumpirlo
Para entender mejor esta estructura, se va a aplicar para el siguiente ejemplo, el cual consiste en clasificar el estado de verificación de un instrumento que mide la velocidad de los automóviles para poder agilizar el proceso de envío de estos tipos de infracciones. Es decir, mientras registre dicha máquina, su lectura va a arrojar, en simultáneo, a una computadora la cual va a ir procesando el estado final de cada placa según la velocidad, si es mayor a 80km/h entonces tendrá como estado “Infractor por exceso de velocidad”, de lo contrario será “Velocidad dentro de los límites”.
Sub ejm3()
x = 2
Do While Cells(x, 2) <> ""
If Cells(x, 2) > 80 Then
Cells(x, 3) = "Infractor por exceso de velocidad"
Else
Cells(x, 3) = " Velocidad dentro de los límites "
End If
x = x + 1
Loop
End Sub
En la siguiente imagen se puede ver el resultado después de haber corrido la macro anterior:
(Para mayor visualización de la imagen, hacer click en la misma)
29/06/2013 a las 5:13 pm
Muy útil.
27/09/2014 a las 7:28 am
muy buenos dias, estos ejemplos son de grandiosa ayuda muchas gracias y que Dios lo Bendiga