【问题标题】:How to Exit For Loop without going to Next如何在不转到下一步的情况下退出 For 循环
【发布时间】:2017-12-07 17:22:16
【问题描述】:

我的代码中有一个包含 If Else 语句的 For 循环。当 If 语句为真时,我想退出整个 For 循环。将不再需要遍历范围的其余部分。 “退出”是否适合这个?

我正在查看 Microsoft 网站上的 Exit 语句,根据他们的说法,Exit For 继续执行 Next 语句之后的语句。如果这是真的,Exit For 将不起作用。我想继续执行 Next 命令。

我可以花时间使用数字计数器或其他东西来测试它,但我宁愿得到一个快速的答案,因为我相信这对这里的大多数人来说都是显而易见的。谢谢!

【问题讨论】:

  • 作为替代方案,您可以始终在循环中使用if x then goto y,而在循环下方使用y:

标签: excel vba


【解决方案1】:

是的,你可以。使用:

Sub test()

Dim x As Integer
For x = 1 To 10

    If x = 2 Then
        Debug.Print "here"
        Exit For
    Else
        Debug.Print x
    End If

Next x

End Sub

我明白了:

1
here

还有这个:

Sub test4()

Dim x As Integer
For x = 1 To 10

    If x = 2 Then
        Debug.Print "here"
        Exit For
    Else
        Debug.Print x
    End If

Debug.Print "testing"

Next x

End Sub

我明白了:

 1 
testing
here

还有这个:

Sub test4()

Dim x As Integer
For x = 1 To 10

    If x = 2 Then
        Debug.Print "here"
        Exit For
        Debug.Print "after here"
    Else
        Debug.Print x
    End If

Debug.Print "testing"

Next x

End Sub

你得到:

 1 
testing
here

【讨论】:

  • 非常感谢您的细心解释!这清楚地表明了在各种情况下会发生什么。我现在要将“Debug.Print”合并到我所有的测试中,它看起来非常有用。非常感谢
  • @DustinBurns - 完全不用担心。花了我 3 分钟。
猜你喜欢
  • 1970-01-01
  • 2018-10-05
  • 2018-09-30
  • 2016-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-19
相关资源
最近更新 更多