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

这里是函数定义:

Public Function StockQuote(strSymbol As String) As Double 

它存储在已经加载的工作表(我的启动文件夹中的“My Macros.xlsm”)中的一个模块中。

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

Workbook1.xlsm单元格A1:

 =StockQuote("AAPL") 

但是,我得到的是名称错误。

= My Macros.xlsm!StockQuote(“AAPL”)

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

工作。

但为了工作,您应该从Workbook1.xlsm的Excel窗口中打开Workbook1.xlsm后的My Macros.xlsm工作簿

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

这样的事情呢?

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

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

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