La estructura While Wend es otra estructura de VBA para crear bucles, similar a la sintaxis de Do While, en donde el bucle se continua ejecutando mientras la condición evaluada sea verdadera.
Ejemplo de While Wend
Veamos el siguiente ejemplo en donde se utiliza esta estructura:
Sub Ejemplo_WhileWend()
Dim cifra As Integer
cifra = 0
While cifra <> 7
cifra = Int(10 * Rnd())
contador = contador + 1
Wend
MsgBox contador & " intentos realizados"
End Sub
En la macro Ejemplo_WhileWend mostrada, el While Wend contiene la instrucción Int(10 * Rnd()) sirve para obtener números al azar entre 0 y 10, y dicho valor es entregado a la variable cifra, como es de esperar al tratarse de números al azar se pueden producir varios intentos hasta que en el caso del ejemplo se obtenga el valor 7, lo contenido por While Wend se va repetir hasta que la variable cifra contenga el número 7.
Diferencias entre Do Loop y While Wend
La estructura de control Do Loop es similar a While Wend, sin embargo, Do Loop ofrece dos ventajas importantes que no ofrece While Wend.
Primera diferencia:
Do Loop permite especificar la condición al principio o al final del bucle, mientras que con While Wend, sólo se puede especificar la condición al principio del bucle. En el caso del Do Loop, al colocar la evaluación de la condición al final del bucle se asegura que el bucle se ejecutará al menos una vez.
Segunda diferencia:
Do-Loop permite especificar que la ejecución del bucle continúe mientras que la condición sea True (usando Do While), o bien hasta que la condición se haga True (Do until) mientras que While Wend no cuenta con esta flexibilidad.
Conclusión:
En base a las características de While Wend, se recomienda utilizar do loop en lugar de esta estructura, ya que tendrá una mayor flexibilidad en el uso.
Para comprender con mayor detalle el Do Loop (también conocido como "Do While", "Do until") revise el artículo: Do Loop