VBA停止执行当前循环迭代

时间:2015-03-03 15:57:27

标签: vba

如何停止执行for循环语句的当前迭代? Exit结束整个循环的执行,我真的使用goto吗?

1 个答案:

答案 0 :(得分:3)

您通常希望在满足给定条件时跳过迭代 - 您在VBA中有2个选项:

  1. 将循环体包裹在If块中:

        For i = 1 to 100
            If SomeCondition Then
                ' interesting iterations
            End If
        Next
    
  2. 使用GoTo跳过迭代(并减少嵌套):

        For i = 1 to 100
            If Not SomeCondition Then GoTo Skip
    
            ' interesting iterations
    
    Skip:
        Next
    
  3. 是的,GoTo很糟糕。但这是一种旧语言,GoTo 确实具有合法用途 - 这是其中之一。如果您保持代码干净并且extract the loop body into its own procedure,则使用它时不会出现任何可读性问题。