从电子表格调用另一个工作簿中的VBA函数

时间:2014-10-10 22:27:05

标签: excel vba reference

这是功能定义:

Public Function StockQuote(strSymbol As String) As Double 

它存储在已加载的工作表(" My Macros.xlsm",在我的Startup文件夹中)的模块中。

我想从另一个工作簿中调用它,作为单元格引用:

Workbook1.xlsm单元格A1:

=StockQuote("AAPL")

但我得到的只是NAME错误。

3 个答案:

答案 0 :(得分:5)

=我的Macros.xlsm!StockQuote(" AAPL")

=' C:\ SomeFolder \ My Macros.xlsm'!StockQuote(" AAPL")

工作。

但是为了工作,你可以在Workbook1.xlsm之后,从Workbook1.xlsm的excel窗口打开My Macros.xlsm工作簿

答案 1 :(得分:1)

尝试将包含该函数的XLSM工作簿保存为XLAM:当XLAM打开时,其他工作簿应该能够看到您的UDF。

答案 2 :(得分:0)

这样的事情怎么样。

它应该在激活工作表时运行,并将函数的返回值放在单元格A1中。

Private Sub Worksheet_Activate()
    Range("A1") = StockQuote("AAPL")
End Sub

如果当前工作表无法看到您的功能,您可能需要以不同的方式构建它