当用户在Excel中启用宏时触发我的宏代码

时间:2013-08-13 06:38:25

标签: excel excel-vba vba

默认情况下禁用宏(默认启用它们不是一个选项)每当我打开包含宏的excel工作表时,我会弹出一个询问我是否要启用宏的弹出窗口。是否可以捕捉此弹出窗口的“确定”按钮按下事件并运行宏。

即。如果用户选择启用宏,那么我的宏应该运行以响应。

1 个答案:

答案 0 :(得分:12)

首先,关于你的“默认启用它们不是一种选择”的说法,请记住,这不一定是真的。用户可以在没有任何提示的情况下自动执行所有宏(在Developer tabMacro security下,选择“启用所有宏(不推荐...)”)。如果默认情况下未启用宏,则在用户允许运行给定宏之前,您无法执行任何操作。宏运行后,您可以在开始时自动触发各种事件,您可以在其中放置代码。例如:在文件ThisWorkbook中(在“Microsoft Excel对象”下),您可以使用Workbook_Open方法。示例代码:

Private Sub Workbook_Open()
    MsgBox "This is the soonest I can popup"
End Sub

如果您在上述文件中复制此代码,您会看到在启用宏后立即出现一个弹出窗口。

注意:拥有自己的文件类型(.xlsm)这一事实应足以说明问题。不幸的是,不少人认为宏的功能非常有限(主要限于给定的电子表格),这是一个危险的错误概念:宏可以做的事情与传统的.exe文件几乎相同。