Excel VBA – exit for loop

Ik wil mijn for-lus verlaten wanneer aan een voorwaarde binnenin is voldaan. Hoe kan ik mijn for-lus verlaten als aan de if-voorwaarde is voldaan? Ik denk een soort exit aan het einde van mijn if-statement, maar ik weet niet hoe dat zou werken.

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

Antwoord 1, autoriteit 100%

Als u uw lus eerder wilt beëindigen, kunt u Exit For

. gebruiken

If [condition] Then Exit For


Antwoord 2, autoriteit 8%

Een andere manier om een For-lus voortijdig te verlaten, is door de lusteller te wijzigen:

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

Antwoord 3

Het eerste antwoord met het volgende is inderdaad i.m.o. beste werkwijze:

if i = 0 then exit for

Dit is echter ook een optie:

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

Other episodes