2010-05-11 56 views
3

我有一个名为book1的加载项。该插件里面有称为Module模块,它有一个叫子addin1从加载项运行一个宏

我想从不同的工作簿中运行宏addin1

我试图调用此宏是这样的:

Call Addin1 

但不工作

和我想:

Call book1.xlam.Module1.AddIn1 

这是行不通

有谁知道如何运行加载项内的宏?

回答

14

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

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

+0

嗨雅各布,我使用的是office 2007.我做了上面写的,直到第12点我能够复制它,但是我有一个步骤13的问题,在选择“宏”命令从下拉菜单中,我的自定义插件不会出现在下拉菜单中添加。 在此先感谢。 – 2014-07-24 05:55:21

+0

步骤1-9,获取插件可访问。我认为OP可能已经处于这个阶段。由于使用插件功能可以立即访问,但不能下载。步骤10-14工作,但步骤12应该说“自定义功能区”。我发现第13步不应该说“双击你的插件”,插件没有在那里列出,但子例程是..然后可以点击“添加>>>”按钮,并获得工具栏中该宏的按钮。 – barlop 2017-09-17 22:09:29

2

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

run "'book1'!module1" 
5

在您的工作簿你写:

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

而且在插件你有

Public Sub ShowForm() 
    loginform.Show 
End Sub 
1

除了Jacob G的回答 - 如果您的.xlam图书受密码保护,您应该打开它进行编辑(即输入密码)。否则,.xlam书宏在“选择命令从下拉菜单”

1

将不可见关于如何运行安装的加载项的子程序(.xlam):

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

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

  3. 在工作簿的代码模块的子程序,你现在可以调用加载的子程序,使用:

    Call Addin_1.routine_name(routine parameters) 
    

既然你已经Addin_1参考,名称一旦你键入Call Addin_1.,加载项中的子例程将出现,一旦你输入了Call Addin_1.routine_name(就会出现特定子例程的参数列表,这极大地帮助编写无错代码。

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