Como y cuando y usar el usar y el modo de funcionamiento de while, do while, wend, elseif y los dim variant que hay

La verdad me esmero dia a dia para aprender a base de lo que los expertos van respondiendo y por medio de lo que me investigo en internet y no para dar lastima ya que no cuento con los recursos necesarios para ir a una escuela, he estado buscando lo que sig while, do while, wend, elseif ¿cómo se usan? ¿Para qué se usan? ¿Cuándo y como lo aplico? Quiza estoy haciendo mis macros un poco lentas y cuando veo sus publicaciones veo que usan bastante estos codigos, al igual que me intriga saber los diferentes tipos de variantes que hay por ejemplo

Yo he visto una asi

dim as  res variant 

res = msgbox ("¿Continuar?",vbyesno)

if res = vbno then exit sub

Pero funciona si le quito la variant de todas maneras, ¿para qué sirven?

1 respuesta

Respuesta
2

Te anexo respuestas:

Uso de bucles do while/do..loop/for...next excel vba

Usar el For Next, en la misma línea le indicas de dónde a dónde quieres el ciclo

For i = 1 to 10 (va desde 1 hasta 10, de uno en uno)

También le puedes indicar que avance de 3 en 3

For i = 1 to 10 step 3  (va desde 1 hasta 10, de tres en tres)

    For i = 1 To 10
        'sentencias
    Next


El ciclo Do While, se me hace más complejo, y ocupas más líneas:

    i = 1
    Do While True
        If i > 10 Then Exit Do
        i = i + 1
        'sentencias
    Loop

Tienes que ser cuidadoso cuando utilizar un Do While, porque puede entrar en un loop si  fin.

Otra forma es:

    i = 1
    Do While i < 11
        i = i + 1
        'sentencias
    Loop

Si los revisas en ambos casos tienes que indicar cuánto vale i, la condición y aumentar i en líneas diferentes, mientras que en el For, todo va en una línea.


El mismo ejemplo pero con el ciclo Do Loop

    i = 1
    Do
        i = i + 1
        'sentencias
    Loop While i < 11

Con While Wend

    i = 1
    While i < 11
        i = i + 1
        'sentencias
    Wend

Utilizo el For para realizar el ciclo de todas las filas desde una fila inicial hasta la última fila con datos:

for i = 2 to range("A" & rows.count).end(xlup).row

Pero hay casos en formatos establecidos que no necesariamente se tiene que recorrer hasta la última fila con datos, solamente se recorre un rango hasta encontrar un vacío, en ese caso utilizo el Do While:

En la imagen anterior si utilizo el For, estaría recorriendo las filas desde la 2 hasta 11.

Para eso empleo un Do while, para que recorra las filas de la 2 a la 4

    i = 2
    Do While Cells(i, "A") <> ""
        'sentencias
        i = i + 1
    Loop

Cuando el contador i llega a 5 la celda A5 es igual a vacío, entonces el ciclo termina.


Si conoces el inicio y el fin, puedes utilizar un For, pero si no conoces el fin porque depende de una condición, entonces utilizar el Do While, el ciclo se ejecutará hasta que se cumpla la condición.


Otro ejemplo para utilizar el Do Loop, es cuando quieres repetir la búsqueda de un dato en la hoja:

    celda = b.Address
    Do 
        ‘detalle
        Set b = r.FindNext(b)
    Loop While Not b Is Nothing And b.Address <> celda

El ciclo se repite hasta que ya no encuentra datos. Similar al caso anterior, no conozco el fin, entonces utilizo un ciclo hasta que se cumpla la condición.


No es necesario declarar variable en VBA.

Error en macro "No se encontró el método o el dato miembro"


Sobre el IF

If  condición, si se cumple

Else, si no se cumple

End If


If condición, si se cumple

ElseIf condición, si no se cumple lo anterior, pero además si se cumple una nueva condición.

Else, si no se cumple ninguna de las condiciones anteriores.

End If


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas