假设我的某个Excel工作表附加了一个函数:
Public Function foo(bar As Integer) as integer
foo = 42
End Function
如何将foo
的结果返回到工作表中的单元格?我试过"=foo(10)"
,但它给我的全部是"#NAME?"
我也尝试了=[filename]!foo(10) and [sheetname]!foo(10)
而没有任何变化。
答案 0 :(得分:5)
请按照here的说明进行操作,以确保您正确执行所有操作,特别是放置位置。 (Insert->Module
)
我可以确认使用Insert->Module
和以下代码打开VBA编辑器:
Function TimesTwo(Value As Integer)
TimesTwo = Value * 2
End Function
并在将"=TimesTwo(100)"
放入单元格的工作表上为我提供200
。
答案 1 :(得分:3)
将函数放在一个新的独立模块(Insert-> Module)中,然后在单元格公式中使用= foo(10)来调用它。
答案 2 :(得分:1)
你把“foo”功能放在哪里?我不知道为什么,但每当我看到这个,解决方案是记录一个dimple宏,并让Excel为该宏的代码创建一个新模块。然后,将“foo”函数放在该模块中。我遵循此程序时您的代码有效,但如果我将其放在“ThisWorkbook”附带的代码模块中,我会收到您报告的#NAME结果。
答案 3 :(得分:-1)
包含像这样的文件名
=PERSONAL.XLS!foo(10)