【发布时间】:2015-05-04 08:41:30
【问题描述】:
如何停止 for 循环语句当前迭代的执行?
Exit 结束整个循环的执行,我真的使用 goto 吗?
【问题讨论】:
-
这是一个写得很糟糕的问题。主要是因为您没有解释是要跳过循环的一次迭代还是完全退出循环。您想在什么情况下跳过/退出?除了
Exit,到目前为止你还尝试过什么?
标签: vba
如何停止 for 循环语句当前迭代的执行?
Exit 结束整个循环的执行,我真的使用 goto 吗?
【问题讨论】:
Exit,到目前为止你还尝试过什么?
标签: vba
您通常希望在满足给定条件时跳过迭代 - 您在 VBA 中有 2 个选项:
将循环体包装在 If 块中:
For i = 1 to 100
If SomeCondition Then
' interesting iterations
End If
Next
使用GoTo 跳过迭代(并减少嵌套):
For i = 1 to 100
If Not SomeCondition Then GoTo Skip
' interesting iterations
Skip:
Next
是的,GoTo 不好。但这是一种古老的语言,GoTo 确实 有合法用途——这就是其中之一。如果你保持你的代码干净并且extract the loop body into its own procedure,那么使用它应该不会有任何可读性问题。
【讨论】: