VBA:与If语句嵌套

时间:2020-09-30 02:44:35

标签: vba if-statement with-statement

在VBA中是否嵌套了“允许”?如果是的话,如何在IF语句中使用它?

我将以下嵌套With与If语句结合使用,编译器给我一个错误消息,提示“ End With Without With”。

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

我将第一个With放在IF语句之外,因为IF语句可以使用它。由于上述代码无效,因此我尝试了另一种方法。如果我将第一个With移到IF语句中,则会获得另一个错误消息。这次,错误消息显示“没有If的其他”。这使我想知道VBA中是否允许嵌套With。

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

2 个答案:

答案 0 :(得分:2)

尝试如下

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

答案 1 :(得分:1)

“带结束符”结构仅适用于当前范围。 if else的范围不同于else endif。因此,with应该要么包含整个if语句,要么分别出现在每个范围内。

完全有可能将一个with with嵌套在其他With With With结构中。在这种情况下,您必须记住领先。指当前范围。