Excel VBA - 退出循环

时间:2012-02-23 14:29:10

标签: vba excel-vba for-loop excel

当我满足条件时,我想退出for循环。如果满足for条件,我怎么能退出if循环?我认为在我的if声明结尾处有某种退出,但不知道它会如何起作用。

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

3 个答案:

答案 0 :(得分:305)

要提前退出循环,您可以使用Exit For

If [condition] Then Exit For

答案 1 :(得分:23)

提前退出For循环的另一种方法是更改​​循环计数器:

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

答案 2 :(得分:0)

以下给出的第一个答案确实是i.m.o。最佳做法:

if i = 0 then exit for

但是,这也是一种选择:

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