vba中工作簿事件,工作表事件,EnableEvents 属性
![]()
各种事件过程代码的执行顺序:
先出发工作表,再工作簿,最后应用程序
| 应用程序事件 | 注释 | |||
| NewWorkbook | 当新建一个工作簿时发生此事件 | |||
| SheetActivate | 当激活任何工作表时发生此事件 | |||
| SheetBeforeDoubleClick | 在双击任何工作表前发生此事件 | |||
| SheetBeforeRightClick | 右键单击任何工作表前发生此事件 | |||
| SheetCalculate | 在重新计算工作表时发生此事件 | |||
| SheetChange | 更改任何工作表的单元格时发生此事件 | |||
| SheetDeactivate | 当工作表失去焦点时发生此事件(离开工作表时)。 | |||
| SheetFollowHyperlink | 在单击工作簿中的任何超链接时发生。 | |||
| SheetPivotTableUpdate | 在更新数据透视表的工作表后发生。 | |||
| SheetSelectionChange | 所选内容在任何工作表上更改时发生。 | |||
| WindowActivate | 在激活任何工作簿窗口时发生。 | |||
| WindowDeactivate | 工作簿的窗口变为非活动状态时,将产生本事件。 | |||
| WindowResize | 改变工作簿窗口大小时发生 | |||
| WorkbookActivate | 当激活任何工作簿时发生此事件 | |||
| WorkbookAddinInstall | 工作簿为加载宏安装时发生此事件 | |||
| WorkbookAddinUninstall | 当任一工作簿作为卸载宏时发生 | |||
| WorkbookAfterXmlEmport | 在保存或导出工作簿中的XML数据之后发生此事件 | |||
| WorkbookAfterXmlImport | 当刷新现有的XML数据链接或新的XML数据被导入任一打开的Excel工作簿之后时发生 | |||
| WorkbookBeforeClose | 关闭任何工作簿前发生此事件 | |||
| WorkbookBeforePrint | 在打印工作簿前发生此事件 | |||
| WorkbookBeforeSave | 在保存任何工作簿前发生引事件 | |||
| WorkbookBeforeXmlExport | 保存或导出XML数据前发生的事件 | |||
| WorkbookBeforeXmlImport | 当刷新现有的XML数据链接或新的XML数据被导入任一打开的Excel工作簿之前时发生 | |||
| WorkbookDeactivate | 当打开的工作簿转为非活动状态时发生此事件 | |||
| WorkbookNewSheet | 在任何打开的工作簿中新建工作表时发生此事件 | |||
| WorkbookOpen | 当打开一个工作簿时发生此事件 | |||
| WorkbookPivotTableCloseCloseConnection | 在数据透视表的链接关闭之后发生此事件 | |||
| WorkbookPivotTableOpenCloseConnection | 在数据透视表的链接打开之后发生此事件 | |||
| WorkbookRowsetCompletd | 如果用户在OLAP数据透视表上深化记录集或调用行集操作,则会发生WorkbookRowsetComplete事件 | |||
| Workbooksync | 当作为“文档工作区”一部分的工作簿的本地副本与服务器上的副本进行同步时发生此事件 | |||
| 工作簿事件 | 注释 | |||
| Activate | 激活工作簿、工作表、图表工作表或嵌入式图表时发生此事件 | |||
| AddinInstall | 当工作簿作为加载宏安装时,发生此事件 | |||
| AddinUninstall | 当工作簿作为加载宏卸载时,发生此事件 | |||
| AfterXmlExport | 在Excel保存或导出指定工作簿中的XML数据之后发生此事件 | |||
| AfterXmlImport | 在刷新现有的XML数据链接或将新的XML数据导入到指定的Excel工作簿之后,发生此事件 | |||
| BeforeClose | 在关闭工作簿之前,先产生此事件。如果该工作簿已经更改过,则本事件在询问用户是否保存更改之前产生。 | |||
| BeforePrint | 在打印指定工作簿(或者其中的任何内容)之前,发生此事件 | |||
| BeforeSave | 保存工作簿之前发生此事件 | |||
| BeforeXmlExport | 在Excel保存或导出指定工作簿中的XML数据之后发生此事件 | |||
| BeforeXmlImport | 在刷新现有的XML数据链接或将新的XML数据导入到指定的Excel工作簿之后,发生此事件 | |||
| Deactivate | 图表、工作表或工作簿被停用时发生此事件 | |||
| NewSheet | 当在工作簿中新建工作表时发生此事件 | |||
| Open | 打开工作簿时,发生此事件 | |||
| PivotTableCloseConnection | 数据透视表关闭与其数据源的链接后发生此事件 | |||
| PivotTableOpenConnection | 数据透视表打开与其数据源的链接后发生此事件 | |||
| RowsetComplete | 如果用户在OLAP数据透视表上深化记录集或调用行集操作,则会引发此事件 | |||
| SheetActivate | 当激活任何工作表时发生 此事件 | |||
| SheetBeforeDoubleClick | 当双击任何工作表时发生此事件,此事件先于默认的双击操作发生 | |||
| SheetBeforeRightClick | 右键单击任一工作表时发生此事件,此事件先于默认的右键单击操作 | |||
| SheetCalculate | 在重新计算工作表时或在图表上绘制更改的数据之生发生此事件 | |||
| SheetChange | 当用户或外部链接更改了任何工作表中的单元格时发生此事件 | |||
| SheetDeactivate | 当任何工作表停用时发生此事件 | |||
| SheetFollowHyperlink | 单击Excel中的任何超链接时发生此事件 | |||
| SheetPivotTableUpdate | 在数据透视表的工作表更新之后发生此事件 | |||
| SheetSelectionChange | 任一工作表的选定区域发生更改时,将发生此事件 | |||
| Sync | 当作为“文档工作区”一部分的工作表的本地副本与服务器上的副本进行同步时,发生此事件 | |||
| WindowActivate | 工作簿窗口被停用时发生此事件 | |||
| WindowDeactivate | 任何工作簿窗口调整大小时发生此事件 | |||
| WindowResize | 任何工作簿窗口被停用时发生此事件 | |||
| 工作表事件 | 注释 | |||
| Activate | 激活工作簿,工作表,图表等发生的事件 | |||
| BeforeDoubleClick | 在工作表中双击前发生的事件 | |||
| BeforeRightClick | 右键单击工作表前发生的事件 | |||
| Calculate | 工作表重新计算之后发生的事件 | |||
| Change | 更改工作表中的单元格发生的事件 | |||
| Deactivate | 工作表,图表停用(焦点离开)时发生的事件 | |||
| FollowHyperlink | 单击工作表上的任意超链接时,发生此事件 | |||
| PivotTableUpdate | 工作簿中的数据透视表更新后发生此事件 | |||
| SelectionChange | 当工作表上选定区域发生改变时发生此事件 |
扩展:Application.EnableEvents 属性
'Application.EnableEvents = True/FALSE
'如果对指定对象启用事件,则该属性值为 True。Boolean 类型,可读写。
'作用:临时关闭,防止死循环
案例:

Private Sub Worksheet_Activate() '激活工作表触发的程序
a = InputBox("请输入密码")
If a = 123 Then
Cells.Font.Color = RGB(0, 0, 0)
Application.EnableEvents = False
Else
Sheet3.Activate
End If
End Sub

Private Sub Workbook_Open()
Application.EnableEvents = True '让事件生效
Sheet2.Cells.Font.Color = RGB(255, 255, 255)
Sheet3.Activate
End Sub










object 是对象的意思




番外补充:

















