2009-02-17 27 views
2

假设我有一个功能,连接到我的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)没有变化。

回答

4

请按照指示here来尝试确保您正确地做了一切准备,特别是关于放在哪里。 (Insert->Module

我可以证实,开放VBA编辑器,使用Insert->Module,和下面的代码:

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

,并在一张纸上把"=TimesTwo(100)"进入细胞给我200

+0

将它移动到一个单独的模块确实解决了问题。 – BIBD 2009-02-17 22:49:21

-1

包括这样

=PERSONAL.XLS!foo(10) 
+0

与我的实际文件名或personal.xls相同的结果 – BIBD 2009-02-17 21:59:19

3

的文件名把函数在一个新的,单独的模块(插入 - >模块),然后使用= FOO(10)的小区内的式调用它。

+0

我得到了两个选项相同的结果 – BIBD 2009-02-17 22:02:46

1

你把“foo”函数放在哪里?我不知道为什么,但每当我看到这个,解决方案是记录一个酒窝宏,并让Excel为该宏的代码创建一个新模块。然后,将“foo”函数放入该模块中。我遵循这个过程时,您的代码会工作,但如果我将它放在附加到“ThisWorkbook”的代码模块中,我会得到您报告的#NAME结果。

相关问题