【问题标题】:VBA does not recognize my company's user defined functionVBA不识别我公司的用户定义函数
【发布时间】:2017-08-24 09:48:49
【问题描述】:

我正在使用公司定义的函数执行 VBA 代码。这个函数包含在一个受密码保护的项目中,我无法访问它,我很确定它不应该被需要。

我可以通过工作表“直接”调用该函数,即在一个单元格中我可以写 =TONNES(B2,B3,B4) 并且单元格输出是正确的值。但是在我使用 VBA 时:

Private Sub CommandButton1_Click()
   Dim param1 as String, param2 as String, param3 as String
   param1 = Cells(2,2)
   param2 = Cells(2,3)
   param3 = Cells(2,4)
   Cells(1,3) = TONNES(param1, param2, param3)
End sub

我收到函数TONNES is not a sub or function 的错误。

我已将宏保存在模块中,但我无权访问用户定义函数的实际代码。有没有办法通过 VBA 使用它?由于它可以直接在工作表中使用,但不能通过 VBA 使用,是否可以推断该功能由于某种原因通过 VBA 被禁用?

编辑:该功能是一个插件(更具体地说,我有一个公司插件,其中包含摘要页面中的生产数据,它创建了这些函数以便在摘要页面中显示这些功能)。

【问题讨论】:

  • 如果你想把.Formula放在单元格中,它应该是Cells(1,3).Formula = "TONNES(""Parameter1"",""2"",""3"")"
  • @DragonSamu 感谢您的回复!我想介绍的是一个简单的常数,即如果公式变为“6”,那么单元格应该简单地读取 6,而不是 6,当您检查单元格时,它是“TONNES(...)”。但是,使用 .Formula 时发生了同样的错误。
  • 是的,我刚刚注意到我打错字了,它应该以= "=TONNES开头
  • Function 是否在插件中?
  • @DragonSamu 是的,它是一个插件。将更新我的问题以描述我如何真正使用参数(我最初并没有减少代码)。

标签: vba excel


【解决方案1】:

所以我终于找到了解决方案。基本上进入 VBA 环境 (Alt + F11) 中的Tools -> References 并添加特定的引用导致了这个问题的解决方案。希望这可能对其有此问题的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 2014-07-18
    • 1970-01-01
    • 2018-06-06
    • 1970-01-01
    • 2015-02-17
    • 2015-08-12
    相关资源
    最近更新 更多