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