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

时间:2009-02-17 21:46:37

标签: excel vba excel-vba

假设我的某个Excel工作表附加了一个函数:

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

如何将foo的结果返回到工作表中的单元格?我试过"=foo(10)",但它给我的全部是"#NAME?"

我也尝试了=[filename]!foo(10) and [sheetname]!foo(10)而没有任何变化。

4 个答案:

答案 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)