从加载项运行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)中运行子例程:
-
确保与加载项相关联的VBA项目具有唯一的名称(不是VBAProject) – 比如Addin_1。
-
在要从中调用加载项中的子例程的工作簿的VBA项目中,设置对Addin_1的引用。 工具>参考,在可用引用列表中findAddin_1,然后单击相邻的框(出现一个勾号)。
-
在工作簿的代码模块的子例程中,现在可以使用以下命令调用加载项的子例程:
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。