【问题标题】:EXCEL VBA procedure ambigous nameEXCEL VBA程序名称不明确
【发布时间】:2017-11-10 13:11:15
【问题描述】:

我的 VBA 代码太大,我正在尝试制作更小的 SUBS,因此不会出现错误,但随后会弹出错误“Ambigoius name”。我试图重命名我的潜艇... 前任。

Private Sub worksheet_calculate()
Range("I9").Interior.Color=Range("AK9").Display.Format.Interior.Color
end sub
Private Sub worksheet_calculate2()
Range("J9").Interior.Color=Range("AQ9").Display.Format.Interior.Color
end sub

...当我如示例中所示重命名其他潜艇时,它不会做任何事情,只有原来的工作正常。如何重命名它们以便它们能够正常工作?

【问题讨论】:

  • 您能发布您在帖子中提到的其他代码吗?另外,我认为您应该粘贴返回的错误而不是提及它。
  • 我假设您希望这些子程序在计算基础工作表时自动运行。然而,只有一个(第一个)被执行。那正确吗?如果是这样,您应该写入名为Private Sub worksheet_calculate() 的第一个子程序Call worksheet_calculate2,然后第二个子程序也将运行。
  • “不明确的名称”通常意味着您有两个同名的 SUB。

标签: vba excel


【解决方案1】:

在我的理解中,worksheet_calculate是子程序的预定义名称,由重新计算工作表时的事件触发。

您可以从中定义和调用其他私人潜艇。 喜欢

Private Sub worksheet_calculate()
   rem sub body
   CalculateSub1 pars        'variant one
   Call CalculateSub1(pars)  'variant two
   rem sub body
End Sub

Sub CalculateSub1(pars)
   Rem Sub body
End Sub 

【讨论】:

    【解决方案2】:

    只需在您的主子末尾插入以下代码行,即“worksheet_calculate”

    Call worksheet_calculate2
    Call worksheet_calculate3
    Call worksheet_calculate4
    Call worksheet_calculate4
    .
    .
    .
    Call worksheet_calculaten
    

    【讨论】:

      猜你喜欢
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2020-03-08
      相关资源
      最近更新 更多