Excel VBA: salir del bucle

Resuelto CustomX asked hace 12 años • 4 respuestas

Me gustaría salir de mi forbucle cuando se cumpla una condición interna. ¿ Cómo podría salir de mi forbucle cuando ifse cumple la condición? Creo que hay algún tipo de salida al final de mi ifdeclaración, pero no sé cómo funcionaría.

Dim i As Long
For i = 1 To 50
    Range("B" & i).Select
    If Range("B" & i).Value = "Artikel" Then
        Dim temp As Long
        temp = i
    End If
Next i
Range("A1:Z" & temp - 1).EntireRow.Delete Shift:=xlToLeft
CustomX avatar Feb 23 '12 21:02 CustomX
Aceptado

Para salir temprano de su ciclo, puede usarExit For

If [condition] Then Exit For

Dan avatar Feb 23 '2012 14:02 Dan

Otra forma de salir temprano de un bucle For es cambiando el contador del bucle:

For i = 1 To 10
    If i = 5 Then i = 10
Next i

Debug.Print i   '11

For i = 1 To 10
    If i = 5 Then Exit For
Next i

Debug.Print i   '5
paul bica avatar Oct 10 '2015 23:10 paul bica

La primera respuesta dada con lo siguiente es, de hecho, la mejor práctica en mi opinión:

if i = 0 then exit for

Sin embargo, esta también es una opción:

Sub some()

Count = 0
End_ = ThisWorkbook.Sheets(1).Range("B1047854").End(xlUp).Row

While Count < End_ And Not ThisWorkbook.Sheets(1).Range("B" & Count).Value = "Artikel"
    Count = Count + 1
    If ThisWorkbook.Sheets(1).Range("B" & Count).Value = "Artikel" Then
        ThisWorkbook.Sheets(1).Range("A1:Z" & Count - 1).EntireRow.Delete Shift:=xlToLeft
    End If
Wend

End Sub
ko_00 avatar Feb 29 '2020 10:02 ko_00