【问题标题】:VBA: nested With with If statementVBA:嵌套与 if 语句
【发布时间】:2021-01-15 16:27:10
【问题描述】:

VBA 中是否允许嵌套 With?如果是,如何配合IF语句使用?

我有以下嵌套的 With 与 If 语句相结合,编译器给了我一条错误消息,说“End With without With”。

With
If
    With
    End With
Else
    End With   <- End With without With
End If

我将第一个 With 放在 IF 语句之外,因为 IF 语句可以使用它。由于上面的代码不起作用,我尝试了另一种方法。如果我在 IF 语句中移动了第一个 With,则会获得另一条错误消息。这一次,错误消息显示“Else without If”。这让我想知道 VBA 中是否允许嵌套 With。

谷歌搜索出现one hit,这与我的问题不完全相同。

【问题讨论】:

    标签: vba if-statement with-statement


    【解决方案1】:

    像下面这样试试

    With
      If <Logical Test> Then
        With
          'Your action here
        End With
      Else
          'Your other actions here.
      End If
    End With
    

    【讨论】:

      【解决方案2】:

      With End With 结构仅适用于当前范围。 if else 的范围与 else endif 不同。因此 with 应该包含整个 if 语句或单独出现在每个范围内。

      完全有可能将 with end with 嵌套在其他 With End With 结构中。在这种情况下,您必须记住领先的 .指当前作用域。

      【讨论】:

        猜你喜欢
        • 2016-04-23
        • 2017-03-06
        • 2013-10-27
        • 2018-12-06
        • 1970-01-01
        • 1970-01-01
        • 2017-06-24
        • 2013-11-19
        • 2023-03-29
        相关资源
        最近更新 更多