在加载项未加载时调用 XLA 加载项方法 (function/sub)
Calling an XLA add-in method (function/sub) when the add-in is not loaded
我需要通过我的 VBA 代码调用第三方 XLA 加载项提供的方法。
已经有answers for doing this with a loaded XLL add-in,但打算直接调用方法
基于 e.James' answer 调用 XLL add-in,我想出了在 Add-in 尚未加载时使用的正确格式.您可以使用 Application.Run
调用 .xla Add-in 中的方法,方法如下:
如果我们假设我们的 .xla 文件的路径是 C:\Program Files\example.xla
并且我们要调用的方法是 ExampleMethod
期望一个整数参数,那么调用将如下所示:
' Method call without return value
Private Sub XLAExample()
Application.Run "'C:\Program Files\example.xla'!ExampleMethod", 10
End Sub
' Method call with return value (check if you can declare correct type for return value!)
Private Function XLAExample() As Variant
XLAExample = Application.Run("'C:\Program Files\example.xla'!ExampleMethod", 10)
End Sub
所以你需要构建一个形式为
的字符串
"'<ADDIN_PATH>'!<METHOD_NAME>"
用于调用,然后只需附加所有需要的参数,如
Application.Run <PATH_AND_METHOD>, <PARAMETER_1>, <PARAMETER_2>, ...
不幸的是,我发现像 API 调用一样直接声明方法的 CuberChase's answer 不适用于我的特定 .xla 文件,可能需要加载它才能工作。
我需要通过我的 VBA 代码调用第三方 XLA 加载项提供的方法。
已经有answers for doing this with a loaded XLL add-in,但打算直接调用方法
基于 e.James' answer 调用 XLL add-in,我想出了在 Add-in 尚未加载时使用的正确格式.您可以使用 Application.Run
调用 .xla Add-in 中的方法,方法如下:
如果我们假设我们的 .xla 文件的路径是 C:\Program Files\example.xla
并且我们要调用的方法是 ExampleMethod
期望一个整数参数,那么调用将如下所示:
' Method call without return value
Private Sub XLAExample()
Application.Run "'C:\Program Files\example.xla'!ExampleMethod", 10
End Sub
' Method call with return value (check if you can declare correct type for return value!)
Private Function XLAExample() As Variant
XLAExample = Application.Run("'C:\Program Files\example.xla'!ExampleMethod", 10)
End Sub
所以你需要构建一个形式为
的字符串"'<ADDIN_PATH>'!<METHOD_NAME>"
用于调用,然后只需附加所有需要的参数,如
Application.Run <PATH_AND_METHOD>, <PARAMETER_1>, <PARAMETER_2>, ...
不幸的是,我发现像 API 调用一样直接声明方法的 CuberChase's answer 不适用于我的特定 .xla 文件,可能需要加载它才能工作。