Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在vba中运行Excel加载项中的函数,是否有比使用Run更简单的方法;我的书包;?_Vba_Excel_Excel Addins - Fatal编程技术网

在vba中运行Excel加载项中的函数,是否有比使用Run更简单的方法;我的书包;?

在vba中运行Excel加载项中的函数,是否有比使用Run更简单的方法;我的书包;?,vba,excel,excel-addins,Vba,Excel,Excel Addins,我正在尝试为Excel 2010创建我的第一个Excel加载项。它的大部分工作正常,通过功能区按钮运行,但我无法从工作簿的VBA代码中寻址外接程序的子例程 根据,应该可以简单地使用以下语法: mySub 或 但这会导致错误“未定义子或函数”。我只是以这种方式运行它们: Run "mySub" 或 是否有一种方法可以包含外接程序,以便我可以用简单的方法解决它 外接程序已在工具->外接程序列表中选中,并且具有唯一名称(CalcFunctions),该名称与其文件名(CalculationFunc

我正在尝试为Excel 2010创建我的第一个Excel加载项。它的大部分工作正常,通过功能区按钮运行,但我无法从工作簿的VBA代码中寻址外接程序的子例程

根据,应该可以简单地使用以下语法:

mySub

但这会导致错误“未定义子或函数”。我只是以这种方式运行它们:

Run "mySub"

是否有一种方法可以包含外接程序,以便我可以用简单的方法解决它

外接程序已在工具->外接程序列表中选中,并且具有唯一名称(CalcFunctions),该名称与其文件名(CalculationFunctions.xlam)不同。外接程序文件位于不同的磁盘上,我正在服务器上工作,但我认为这并不重要。

(代表OP发布)

原来我只是个笨蛋。我只在常规Excel窗口中设置对加载项的引用。我认为这就是人们所说的工具->引用->加载项(我使用荷兰语的Excel,没有“工具”菜单)。无论如何,解决方案是在VBA编辑器窗口的该菜单中设置引用

以下是如何在VBA中添加引用:

ThisWorkbook.VBProject.References.AddFromFile refPath
refPath是文件的完整路径


要能够添加引用,您需要具有编辑VBA项目的权限。您可以在excel设置->信任中心->宏设置中启用此功能。如果您在公司电脑上,管理员可能必须为您设置这些设置。

您需要在工作簿的VBProject中设置对加载项的引用。只有将外接程序的项目名称更改为默认的
VBAProject
,才能执行此操作。谢谢!我以为我已经这么做了,但我很笨。我详细地编辑了这个问题。
Application.Run("myAddIn.xlam!mySub")
ThisWorkbook.VBProject.References.AddFromFile refPath