Answers:
要及早退出循环,您可以使用 Exit For
If [condition] Then Exit For
Exit
语句比VB.NET的选项少。实际上,VBA仅支持:Exit Do
Exit For
Exit Function
Exit Property
和Exit Sub
。VBA没有Exit While
。正确的链接是:Office VBA参考-退出语句
提前退出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
阻止逻辑(非结构化编程)或Continue
VBA中缺少关键字的可能解决方法的格式更健壮。Exit For
如果逻辑未正确执行对象清除操作,也可能会受到质疑-尽管错误的实现在这里并不十分相关(@ jpmc26)
以下给出的第一个答案确实是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
If [condition] Then Exit For
在循环中