如何将函数的结果返回给Excel中的单元格?

假设我有一个函数附加到我的Excel工作表之一:

Public Function foo(bar As Integer) as integer foo = 42 End Function 

我怎样才能得到foo的结果返回到我的工作表上的单元格? 我试过"=foo(10)" ,但是它给我的是"#NAME?"

我也试过=[filename]!foo(10) and [sheetname]!foo(10) ,没有任何改变。

尝试按照这里的方向,以确保你正在做的一切,特别是在哪里把它。 ( Insert->Module

我可以确认打开VBA编辑器,使用Insert->Module和下面的代码:

 Function TimesTwo(Value As Integer) TimesTwo = Value * 2 End Function 

在一张纸上放入"=TimesTwo(100)"到一个单元给我200

把函数放在一个新的独立模块(Insert-> Module)中,然后在单元格公式中使用= foo(10)来调用它。

你把“富”function放在哪里? 我不知道为什么,但每当我看到这个,解决scheme是logging一个酒窝macros,并让Excel为该macros的代码创build一个新的模块。 然后,把你的“富”function,在该模块。 当我按照这个程序进行操作时,你的代码就能正常工作,但是如果我把它放在附加到“ThisWorkbook”的代码模块中,我会得到你报告的#NAME结果。

包括这样的文件名称

 =PERSONAL.XLS!foo(10)