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

baa*_*ger 2 excel vba excel-vba

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

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

var*_*bas 12

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

Private Sub Workbook_Open()
    MsgBox "This is the soonest I can popup"
End Sub
Run Code Online (Sandbox Code Playgroud)

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

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