翻箱倒柜,无意中发现个好东东放到这里,大家查着也方便工作簿对象事件一览表当工作簿更改、工作簿中的任何工作表更改、加载宏更改或数据透视表更改时,将引发工作簿事件。
工作簿上的事件在默认情况下是可用的。
若要查看工作簿的事件过程,请用鼠标右键单击处于还原状态或最小化状态的工作簿窗口标题栏,再单击快捷菜单上的“查看代码”。
在“过程”下拉列表框内选择事件名称。
事件? ? ? ? 说明Activate激活工作薄时AddinInstall当工作簿作为加载宏安装时AddinUninstall工作簿作为加载宏卸载时BeforeClose关闭工作薄前BeforePrint打印工作薄(或其中任何内容)之前BeforeSave保存工作薄前Deactivate工作簿从活动状态转为非活动状态时NewSheet在工作簿中新建工作表时Open打开工作簿时PivotTableCloseConnection在数据透视表关闭与其数据源的连接之后PivotTableOpenConnection在数据透视表打开与其数据源的连接之后SheetActivate激活任何一张表时SheetBeforeDoubleClick双击任何工作表时SheetBeforeRightClick鼠标右键单击任一工作表时SheetCalculate工作表重新计算时SheetChange更改工作表中的单元格时SheetDeactivate任一工作表由活动状态转为非活动状态时SheetFollowHyperlink单击 Microsoft Excel 中的任意超链接时SheetPivotTableUpdate数据透视表的工作表更新之后SheetSelectionChange工作簿中的数据透视表更新之后WindowActivate工作簿的窗口激活时WindowDeactivate工作簿的窗口变为非活动状态时WindowResize工作簿窗口调整大小时本示例在打开工作簿时将 Microsoft Excel 窗口最大化。
Sub Workbook_Open()? ? = xlMaximizedEnd Sub? ? ? ?Activate 事件激活一个工作簿、工作表、图表或嵌入图表时产生此事件。
Private Sub object_Activate()object? ?? ?Chart、Workbook、或者 Worksheet。
有关对 Chart 对象使用事件的详细信息,请参阅图表对象事件的用法。
说明切换两个显示同一个工作簿的窗口时,将产生 WindowActivate 事件,但不产生工作簿的Activate 事件。
新建窗口时不产生本事件。
示例当激活工作表时,本示例对 A1:A10 区域进行排序。
Private Sub Worksheet_Activate()? ? Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscendingEnd SubAddinInstall 事件当工作簿作为加载宏安装时,产生此事件。
Private Sub Workbook_AddinInstall()示例当指定工作簿作为加载宏安装时,本示例将一个控件添加到常用工具栏中。
Private Sub Workbook_AddinInstall()? ? With ("Standard").? ?? ???.Caption = "The AddIn's menu item"? ?? ???.OnAction = "''!Amacro"? ? End With End SubEnd Sub? ? ? ? ? ? ? ?AddinUninstall 事件当工作簿作为加载宏卸载时,产生此事件。
Private Sub Workbook_AddinUninstall()说明卸载加载宏时,该加载宏并不自动关闭。
示例当指定工作簿作为加载宏卸载时,本示例将 Microsoft Excel 最小化。
Private Sub Workbook_AddinUninstall()? ? = xlMinimizedEnd SubBeforeClose 事件在关闭工作簿之前,先产生此事件。
如果该工作簿已经更改过,则本事件在询问用户是否保存更改之前产生。
Private Sub Workbook_BeforeClose(Cancel As Boolean)Cancel? ?? ?当事件产生时为 False。
如果该事件过程将本参数设为 True,则停止对工作簿的关闭操作,工作薄仍处于打开状态。
示例本示例将 BeforeClose 事件的响应设置为保存工作簿的任何更改。
Private Sub Workbook_BeforeClose(Cancel as Boolean)? ? If = False ThenEnd Sub? ? ? ? ? ? ? ?BeforePrint 事件在打印指定工作簿(或者其中的任何内容)之前,产生此事件。
Private Sub Workbook_BeforePrint(Cancel As Boolean)Cancel? ?? ?当事件产生时为 False。
如果该事件过程将本参数设为 True,则当该过程运行结束之后不打印工作簿。
示例本示例在打印之前对当前活动工作簿的所有工作表重新计算。
Private Sub Workbook_BeforePrint(Cancel As Boolean)? ? For Each wk in Worksheets? ?? ???? ? NextEnd SubBeforeSave 事件保存工作簿之前产生此事件。
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean) SaveAsUi? ?? ?如果显示“另存为”对话框,则为 True。
Cancel? ?? ?当事件产生时为 False。
如果该事件过程将本参数设为 True,则该过程执行结束之后不保存工作簿。
示例本示例在保存工作簿之前询问用户是否保存。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _? ?? ???Cancel as Boolean)? ? a = MsgBox("Do you really want to save the workbook", vbYesNo)? ? If a = vbNo Then Cancel = TrueEnd Sub? ? ? ?Deactivate 事件图表、工作表或工作簿从活动状态转为非活动状态时产生此事件。
Private Sub object_Deactivate()object? ?? ?Chart、Workbook 或者 Worksheet。
有关对 Chart 对象使用事件的详细信息,请参阅 Chart 对象事件的用法。
示例本示例当工作簿转为非活动状态时,对所有打开的窗口进行排列。
Private Sub Workbook_Deactivate()? ? xlArrangeStyleTiledEnd SubNewSheet 事件当在工作簿中新建工作表时产生此事件。
Private Sub Workbook_NewSheet(ByVal Sh As Object)Sh? ?? ?新工作表。
可以是一个 Worksheet 或 Chart 对象。
示例本示例将新建的工作表移到工作簿的末尾。
Private Sub Workbook_NewSheet(ByVal Sh as Object)? ? After:= SheetsEnd Sub? ? ? ?Open 事件打开工作簿时,将产生本事件。
Private Sub Workbook_Open()示例每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。
Private Sub Workbook_Open()? ? = xlMaximizedEnd Sub? ? ? ?PivotTableCloseConnection 事件发生在数据透视表关闭与其数据源的连接之后。
Private Sub expression_PivotTableCloseConnection(ByVal Target As PivotTable) expression? ?? ?引用在类模块中带有事件声明的 Workbook 类型对象的变量。
Target? ? 必需。
选定的数据透视表。
示例本示例显示一则消息,说明数据透视表与其数据源的连接已经关闭。
本示例假定您已在类模块中声明了带有事件的 Workbook 类型的对象。
Private Sub ConnectionApp_PivotTableCloseConnection(ByVal Target As PivotTable) ? ? MsgBox "The PivotTable connection has been closed."End SubPivotTableOpenConnection 事件发生在数据透视表打开与其数据源的连接之后。
Private Sub expression_PivotTableOpenConnection(ByVal Target As PivotTable) expression? ?? ?引用在类模块中带有事件声明的 Workbook 类型对象的变量。
Target? ? 必需。
选定的数据透视表。
示例本示例显示一则消息,说明数据透视表与其数据源的连接已经打开。
本示例假定您已在类模块中声明了带有事件的 Workbook 类型的对象。
Private Sub ConnectionApp_PivotTableOpenConnection(ByVal Target As PivotTable) ? ? MsgBox "The PivotTable connection has been opened."End SubSheetActivate 事件当激活任何一张表时产生此事件。
Private Sub object_SheetActivate(ByVal Sh As Object)object? ?? ?Application 对象或 Workbook 对象。
Sh? ?? ?激活的表。
可以是一个 Chart 对象或 Worksheet 对象。