|
上一讲工作表事件,这一讲是工作簿事件。
主要是针对工作簿的一些事件进行处理。
工作簿事件代码主要是保存在内置对象的THISWORKBOOK模块中。
主要的工作簿事件
Activate ,激活工作簿、工作表、图表工作表或嵌入式图表时发生此事件。
新建窗口时不发生此事件。
切换两个显示同一工作簿的窗口时,将发生 WindowActivate 事件,但不发生工作簿的 Activate 事件。
AddinInstall ,当工作簿作为加载宏安装时,发生此事件
AfterSave ,在保存工作簿之后发生。
BeforeClose ,在关闭工作簿之前,先产生此事件。如果该工作簿已经更改过,则本事件在询问用户是否保存更改之前产生。
BeforePrint ,在打印指定工作簿(或者其中的任何内容)之前,发生此事件。
BeforeSave ,保存工作簿之前发生此事件。
Open ,打开工作簿时,发生此事件。
SheetChange ,当用户或外部链接更改了任何工作表中的单元格时发生此事件。
图表工作表中不发生此事件。
WindowActivate ,工作簿窗口被激活时,将发生此事件。
更多的请F1
代码范例:- ‘此示例在工作表被激活时对区域 A1:A10 排序。
- Private Sub Worksheet_Activate()
- Range("a1:a10").Sort Key1:=Range("a1"), Order1:=xlAscending
- End Sub
复制代码- ’当工作簿作为加载宏安装时,本示例将一个控件添加到常用工具栏中。
- Private Sub Workbook_AddinInstall()
- With Application.Commandbars("Standard").Controls.Add
- .Caption = "The AddIn's menu item"
- .OnAction = "'ThisAddin.xls'!Amacro"
- End With End Sub
- End Sub
复制代码- ‘下面的代码示例将在成功保存工作簿时显示一个消息框。
- Private Sub Workbook_AfterSave(ByVal Success As Boolean)
- If Success Then
- MsgBox ("The workbook was successfully saved.")
- End If
- End Sub
复制代码- ’本示例将 BeforeClose 事件的响应设置为保存工作簿的任何更改。
- Private Sub Workbook_BeforeClose(Cancel as Boolean)
- If Me.Saved = False Then Me.Save
- End Sub
复制代码- ’本示例在打印之前对活动工作簿的所有工作表重新计算。
- Private Sub Workbook_BeforePrint(Cancel As Boolean)
- For Each wk in Worksheets
- wk.Calculate
- Next
- End Sub
复制代码- ‘本示例在保存工作簿之前询问用户是否保存。
- 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 = True
- End Sub
复制代码- ’每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口。
- Visual Basic for Applications
- Private Sub Workbook_Open()
- Application.WindowState = xlMaximized
- End Sub
复制代码 |
|