[excel] Excel VBA-루프 종료

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



답변

루프를 일찍 종료하려면 다음을 사용할 수 있습니다. Exit For

If [condition] Then Exit For


답변

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


답변

다음과 같은 첫 번째 대답은 실제로 imo 모범 사례입니다.

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


답변