从加载项运行macros

我有一个名为book1的插件。 在插件里面有一个叫做module1的模块,它有一个叫做addin1的子模块

我想从一个不同的工作簿运行macros插件

我想要这样调用这个macros:

Call Addin1 

但是这不起作用

我试过了:

 Call book1.xlam.Module1.AddIn1 

这也不行

有谁知道如何运行一个加载macros内的macros?

(假设Office 2007)下面是一个例子:

1-打开一个新的工作簿。
2-添加一个包含代码MsgBox("Add-In")的macros
3-另存为xlam文件。
4-打开新的工作簿。
5-单击Officebutton – > Excel选项
6-点击左侧的加载项标签。
7-在底部的“pipe理”下拉列表旁边,select“Excel加载项”,然后点击开始。
8-点击浏览并导航到你的xlam文件。
9-确保选中文件旁边的框,然后点击确定。
10-点击Officebutton – > Excel选项。
11-点击自定义标签。
12-在“从下拉菜单中select命令”中selectmacros。
13-双击你的AddIn,现在一个button就会出现在快速访问工具栏上。
14-点击button,你的消息框现在将显示。

在你的工作簿中你写道:

 Sub test() ' from other excel file Application.Run ("youraddin.xla!ShowForm") End Sub 

在插件中,你有

 Public Sub ShowForm() loginform.Show End Sub 

我相信这是你寻找的东西:)你将需要所有的单引号和! 在正确的地方,可以有点棘手。

 run "'book1'!module1" 

除了Jacob G的回答 – 如果你的.xlam图书受密码保护,你应该打开它进行编辑(即input密码)。 否则.xlam图书的macros将不会在“从下拉列表中select命令”中看到

关于如何在已安装的加载项(.xlam)中运行子例程:

  1. 确保与加载项相关联的VBA项目具有唯一的名称(不是VBAProject) – 比如Addin_1。

  2. 在要从中调用加载项中的子例程的工作簿的VBA项目中,设置对Addin_1的引用。 工具>参考,在可用引用列表中findAddin_1,然后单击相邻的框(出现一个勾号)。

  3. 在工作簿的代码模块的子例程中,现在可以使用以下命令调用加载项的子例程:

      Call Addin_1.routine_name(routine parameters) 

由于您有一个对Addin_1的引用,因此只要键入Call Addin_1. ,就会显示加载项中的子例程的名称Call Addin_1. 一旦你input了Call Addin_1.routine_name( ,这大大有助于编写无差错代码),特定子程序的参数列表就会出现。

使用Excel 2013进行testing。发现时,我好奇地看到发生了什么事,当我设置一个已安装的加载项(.xlam)的VBA项目的引用。 我没有看到这个logging。