从加载项运行宏

时间:2010-05-11 20:14:40

标签: excel vba excel-vba

我有一个名为book1的加载项。在插件内部有一个名为module1的模块,它有一个名为addin1

的子组件

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

我试图像这样调用这个宏:

Call Addin1

但那不起作用

我试过了:

Call book1.xlam.Module1.AddIn1

无效

有没有人知道如何运行加载项中的宏?

5 个答案:

答案 0 :(得分:17)

(假设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-单击按钮,现在将显示消息框。

答案 1 :(得分:6)

在你的工作簿中写道:

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

在插件中你有

Public Sub ShowForm() 
    loginform.Show 
End Sub 

答案 2 :(得分:2)

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

run "'book1'!module1"

答案 3 :(得分:1)

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

中将无法看到.xlam书籍的宏

答案 4 :(得分:1)

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

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

  2. 在您希望从其中调用外接程序的工作簿的VBA项目中,设置对Addin_1的引用。工具>引用,在可用引用列表中找到Addin_1,然后单击相邻的框(出现一个勾号)。

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

      Call Addin_1.routine_name(routine parameters)
    
  4. 由于您有对Addin_1的引用,因此在您键入Call Addin_1.后将显示加载项中子例程的名称,并且在您键入Call Addin_1.routine_name(后将显示特定子例程的参数列表,这有助于编写无错误的代码。

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