从正常的Excel工作簿(.xlsx)单击按钮时触发外部宏

时间:2011-05-12 09:30:40

标签: excel vba excel-vba

简单地说我的问题如下:正常excel工作簿(.xlsx而不是.xlsm)中的工作表上的按钮是否可以在另一个文件中触发宏,特别是在(.xlam)中安装的excel add。 / p>

以下是我想实现这一目标的一些背景知识。我有一个工作簿,许多用户需要能够查看,但只有一些需要能够通过在另一个工作表上填写表单并在添加中调用宏来更新。工作表不应包含任何宏以避免安全警告由普通用户打开时。我可以通过在添加中添加一个用户单击的功能区按钮来执行此操作,然后在执行更新代码之前检查正确的工作簿是否已打开以及表单是否已填写等。但是,如果按钮而不是出现在功能区上的按钮位于表单正下方的工作表上,则界面会更好。因此,我的问题是可以从非宏启用的工作簿中的按钮单击触发外部宏。

2 个答案:

答案 0 :(得分:2)

是的,您可以将外部宏(应该是 .xlsm文件)分配给非启用宏的工作簿( .xlsx)按钮。为简单起见,我的xlsm宏与xlsx工作簿位于同一目录中。 (注意:我使用的是Excel 2010)

  1. 首先,您必须在Excel窗口的同一实例中打开xlsm宏(即不要打开新的Excel实例),以便xlsx工作簿能够查看/访问它。
  2. 右键单击xlsx工作簿按钮,然后选择“指定宏...”
  3. 确保在“所有打开的工作簿”中选择“宏”
  4. 将显示打开的工作簿中的所有宏(这就是执行步骤1的重要原因。)
  5. 从列表中选择所需的宏,然后单击“确定”。

答案 1 :(得分:1)

我看不出如何在非启用宏的工作簿中从控件执行宏。