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