Я хотел бы выйти из цикла 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
For Each
.
For
(не For Each
). «За» и «против» применимы к различным решениям и различным ситуациям - например, это более надежный формат, чем Go To label
« Go To label
которая тормозит логику (неструктурированное программирование) или возможный обходной путь ключевого слова « Continue
, отсутствующего в VBA. Достоинства Exit For
могут быть подвергнуты сомнению, если логика не выполняет надлежащую очистку объектов - плохие реализации здесь не совсем актуальны (@ jpmc26)
If [condition] Then Exit For
внутри вашего цикла