需在ThisWorkbook模块中编写Workbook_Open事件代码,并将文件保存为.xlsm格式,同时确保宏安全性设置允许运行。

如果您希望Excel工作簿在打开时自动执行一段VBA代码,例如初始化设置、检查数据完整性或显示欢迎信息,则需利用ThisWorkbook对象的Open事件。以下是实现此功能的具体步骤:
一、启用开发工具并打开VBA编辑器
ThisWorkbook模块默认不可见,需先调出“开发工具”选项卡并进入VBA环境才能编辑。该操作为后续编写事件代码的前提。
1、在Excel主界面左上角点击“文件”→“选项”→“自定义功能区”。
2、在右侧“主选项卡”列表中勾选开发工具,点击“确定”。
3、在功能区点击“开发工具”→“Visual Basic”,或按快捷键Alt + F11打开VBA编辑器。
二、定位并双击ThisWorkbook对象
ThisWorkbook是代表当前工作簿的专用类模块,其内置的Open事件仅在此处定义才有效。其他模块(如Module1或Sheet1)中的Sub过程无法被自动触发。
1、在VBA编辑器左侧的“工程资源管理器”中找到当前工作簿名称(如VBAProject (Book1.xlsm))。
2、展开其节点,找到ThisWorkbook项。
3、双击ThisWorkbook,右侧代码窗口将显示空白模块。
三、插入Workbook_Open事件过程
Excel会自动识别以Workbook_Open命名的过程为打开事件入口,无需手动注册或绑定。该过程必须位于ThisWorkbook模块内,且签名不可修改。
1、在ThisWorkbook代码窗口中,从上方两个下拉菜单中:左侧选择Workbook,右侧选择Open。
2、VBA将自动生成如下结构的空事件过程:
Private Sub Workbook_Open()
End Sub
3、在Sub与End Sub之间输入您的宏代码,例如:
MsgBox "工作簿已打开,正在运行初始化宏。"
四、保存为启用宏的工作簿格式
Open事件仅在启用宏的文件类型中生效。若保存为.xlsx格式,所有VBA代码将被清除,事件失效。
1、返回Excel界面,点击“文件”→“另存为”→选择保存位置。
2、在“保存类型”下拉菜单中,必须选择Excel启用宏的工作簿 (*.xlsm)。
3、点击“保存”,关闭并重新打开该.xlsm文件,验证Open事件是否触发。
五、确保宏安全性设置允许运行
即使代码正确且格式无误,若Excel的安全设置禁用宏,Open事件仍不会执行。需临时调整信任中心配置以启用宏运行。
1、点击“文件”→“选项”→“信任中心”→“信任中心设置”。
2、选择“宏设置”,勾选启用所有宏(不推荐;可能会运行有危险的代码)或禁用所有宏,并发出通知。
3、点击“确定”后重启Excel,再次打开.xlsm文件时,若看到黄色安全警告栏,需点击“启用内容”。










