【发布时间】: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 是的,它是一个插件。将更新我的问题以描述我如何真正使用参数(我最初并没有减少代码)。