Activate 事件
激活工作簿、工作表、图表工作表或嵌入式图表时发生此事件。
新建窗口时不发生此事件。
切换两个显示同一工作簿的窗口时,将发生 WindowActivate 事件,但不发生工作簿的 Activate 事件。
示例
此示例在工作表被激活时对区域 A1:A10 排序。
Private Sub Worksheet_Activate()
Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending
End Sub
AddinInstall 事件
当工作簿作为加载宏安装时,发生此事件
当工作簿作为加载宏安装时,下面的示例将一个控件添加到常用工具栏中。
Private Sub Workbook_
AddinInstall
()
With Application.Commandbars("Standard").Controls.Add
.Caption = "加载项的菜单项"
.OnAction = "'ThisAddin.xls'!Amacro"
End With End Sub
End Sub
AddinUninstall 事件
当工作簿作为加载宏卸载时,发生此事件。
说明
卸载加载宏时,该加载宏并不自动关闭。
示例
当工作簿作为加载宏卸载时,本示例将 Microsoft Excel 最小化。
Private Sub Workbook_
AddinUninstall
()
Application.WindowState = xlMinimized
End Sub
AfterXmlExport 事件
在 Microsoft Excel 保存或导出指定工作簿中的 XML 数据之前发生此事件。
语法
表达式.AfterXmlExport(Map, Url, Result)
表达式 一个代表 Workbook 对象的变量。
参数
说明
XlXmlExportResult 可以是下列 XlXmlExportResult 常量之一:
xlXmlExportSuccess。XML 数据文件成功导出。
xlXmlExportValidationFailed。XML 数据文件的内容不符合指定的架构映射。
XmlMap 对象
代表已添加到工作簿的 XML 映射。
注释
除了将文件保存为 XML 电子表格格式,其他的 XML 功能只能在 Microsoft Office Professional Edition 2003 和 Microsoft Office Excel 2003中使用。
使用
XmlMaps
集合的
Add
方法可将 XML 映射添加到工作簿。
导入和导出 XML 数据
使用
Import
方法可将 XML 数据从 XML 数据文件导入到映射到指定的
XmlMap
的单元格中。
ImportXml
方法为
String
变量导入 XML 数据。
使用
Export
方法可将数据从映射到指定的
XmlMap
的单元格中导出。
ExportXml
方法将数据导出到
String
变量。
AfterXmlImport 事件
在刷新现有的 XML 数据连接或将新的 XML 数据导入到指定的 Microsoft Excel 工作簿之后,发生此事件。
语法
表达式.AfterXmlImport(Map, IsRefresh, Result)
表达式 一个代表 Workbook 对象的变量。
参数
说明
XlXmlImportResult 可为以下 XlXmlImportResult 常量之一:
xlXmlImportElementsTruncated。由于指定的 XML 数据文件对于工作表来说太大,因此其内容已被截断。
xlXmlImportSuccess。XML 数据文件成功导入。
xlXmlImportValidationFailed。XML 数据文件的内容不符合指定的架构映射。
BeforeClose 事件
在关闭工作簿之前,先产生此事件。如果该工作簿已经更改过,则本事件在询问用户是否保存更改之前产生。
语法
表达式
.BeforeClose(
Cancel
)
示例
本示例将 BeforeClose 事件的响应设置为保存工作簿的任何更改。
Private Sub Workbook_
BeforeClose
(Cancel as Boolean)
If Me.Saved = False Then Me.Save
'Saved属性,如果指定工作簿从上次保存至今未发生过更改,则该属性值为 True,否则为False
End Sub
BeforePrint 事件
在打印指定工作簿(或者其中的任何内容)之前,发生此事件。
语法
表达式
.BeforePrint(
Cancel
)
表达式
一个代表
Workbook
对象的变量。
参数
示例
本示例在打印之前对活动工作簿的所有工作表重新计算。
Private Sub Workbook_
BeforePrint
(Cancel As Boolean)
For Each wk in Worksheets
wk.Calculate
Next
End Sub
BeforeSave 事件
保存工作簿之前发生此事件。
语法
表达式.BeforeSave(SaveAsUI, Cancel)
表达式 一个代表 Workbook 对象的变量。
参数
示例
本示例在保存工作簿之前询问用户是否保存。
Private Sub Workbook_
BeforeSave
(ByVal SaveAsUI As Boolean, Cancel as Boolean)
a = MsgBox("是否要保存工作簿?", vbYesNo)
If a = vbNo Then Cancel = True
End Sub
BeforeXmlExport 事件
在 Microsoft Excel 保存或导出指定工作簿中的 XML 数据之前发生此事件。
语法
表达式.BeforeXmlExport(Map, Url, Cancel)
表达式 一个代表 Workbook 对象的变量。
参数
BeforeXmlImport 事件
在刷新现有的 XML 数据连接或将新的 XML 数据导入到指定的 Microsoft Excel 工作簿之前,发生此事件。
语法
表达式.BeforeXmlImport(Map, Url, IsRefresh, Cancel)
表达式 一个代表 Workbook 对象的变量。
参数
Deactivate 事件
图表、工作表或工作簿被停用时发生此事件。
语法
表达式.Deactivate
表达式 一个代表 Workbook 对象的变量。
示例
此示例在工作簿被停用时对所有打开的窗口进行排列。
Private Sub Workbook_
Deactivate
()
Application.Windows.Arrange xlArrangeStyleTiled
End Sub
NewSheet 事件
当在工作簿中新建工作表时发生此事件。
语法
表达式
.NewSheet(
Sh
)
表达式
一个代表
Workbook
对象的变量。
参数
示例
本示例将新建的工作表移到工作簿的末尾。
Private Sub Workbook_
NewSheet
(ByVal Sh as Object)
Sh.Move After:= Sheets(Sheets.Count)
End Sub
Open 事件
打开工作簿时,发生此事件。
语法
表达式
.Open
表达式
返回
Workbook
对象的表达式。
示例
每次打开工作簿时,本示例都最大化 Microsoft Excel 窗口
Private Sub Workbook_
Open
()
Application.WindowState = xlMaximized
End Sub
PivotTableCloseConnection 事件
数据透视表关闭与其数据源的连接后发生此事件。
语法
表达式.PivotTableCloseConnection(Target)
表达式 一个代表 Workbook 对象的变量。
参数
示例
本示例显示一则消息,说明数据透视表与其数据源的连接已经关闭。本示例假定您已在类模块中声明了带有事件的
Workbook
类型的对象。
Private Sub ConnectionApp_PivotTableCloseConnection(ByVal Target As PivotTable)
MsgBox "数据透视表连接已关闭"
End Sub
PivotTableOpenConnection 事件
数据透视表打开与其数据源的连接后发生此事件。
语法
表达式.PivotTableOpenConnection(Target)
表达式 一个代表 Workbook 对象的变量。
参数
示例
本示例显示一则消息,说明数据透视表与其数据源的连接已经打开。本示例假定您已在类模块中声明了带有事件的
Workbook
类型的对象。
Private Sub ConnectionApp_PivotTableOpenConnection(ByVal Target As PivotTable)
MsgBox "数据透视表连接已打开"
End Sub
RowsetComplete 事件
如果用户在 OLAP 数据透视表上深化记录集或调用行集操作,则会引发此事件。
语法
表达式
.RowsetComplete(
Description
,
Sheet
,
Success
)
表达式
一个代表
Workbook
对象的变量。
参数
说明
由于记录集是以异步方式创建的,所以此事件允许自动确定已在何时完成操作。此外,由于记录集是在单独的工作表上创建的,所以需要将此事件置于工作簿级别上。
SheetActivate 事件
当激活任何工作表时发生此事件。
语法
表达式.SheetActivate(Sh )
表达式 一个返回 Workbook 对象的表达式。
参数
示例
本示例显示被激活的每个工作表的名称。
Private Sub Workbook_
SheetActivate
(ByVal Sh As Object)
MsgBox Sh.Name
End Sub
SheetBeforeDoubleClick 事件
当双击任何工作表时发生此事件,此事件先于默认的双击操作发生。
语法
表达式.SheetBeforeDoubleClick(Sh, Target, Cancel)
表达式 一个返回 Workbook 对象的表达式。
参数
说明
图表工作表中不发生此事件。
示例
本示例禁用默认的双击操作。
Private Sub Workbook_
SheetBeforeDoubleClick
(ByVal Sh As Object, _
ByVal Target As Range, ByVal Cancel As Boolean)
Cancel = True
End Sub
SheetBeforeRightClick 事件
右键单击任一工作表时发生此事件,此事件先于默认的右键单击操作。
语法
表达式.SheetBeforeRightClick(Sh, Target, Cancel)
表达式 一个返回 Workbook 对象的表达式。
参数
说明
图表工作表中不发生此事件。
示例
本示例禁用默认的右键单击操作。
Private Sub Workbook_
SheetBeforeRightClick
(ByVal Sh As Object, _
ByVal Target As Range, ByVal Cancel As Boolean)
Cancel = True
End Sub
SheetCalculate 事件
在重新计算工作表时或在图表上绘制更改的数据之后发生此事件。
语法
表达式
.SheetCalculate(
Sh
, )
表达式
一个返回
Workbook
对象的表达式。
参数
示例
本示例在计算工作簿中的任何工作表时,对第一张工作表的 A1:A100 区域进行排序。
Private Sub Workbook_
SheetCalculate
(ByVal Sh As Object)
With Worksheets(1)
.Range("a1:a100").Sort Key1:=.Range("a1")
End With
End Sub
SheetChange 事件
当用户或外部链接更改了任何工作表中的单元格时发生此事件。
语法
表达式.SheetChange(Sh, Target)
表达式 一个返回 Workbook 对象的表达式。
参数
说明
图表工作表中不发生此事件。
示例
本示例在任何工作表发生更改时运行。
Private Sub Workbook_
SheetChange
(ByVal Sh As Object, _
ByVal Source As Range)
' 更改工作表时运行
End Sub
SheetDeactivate 事件
当任何工作表被停用时发生此事件。
语法
表达式
.SheetDeactivate(
Sh
, )
表达式
一个返回
Workbook
对象的表达式。
参数
示例
本示例显示每个被停用的工作表的名称。
Private Sub Workbook_
SheetDeactivate
(ByVal Sh As Object)
MsgBox Sh.Name
End Sub
SheetFollowHyperlink 事件
单击 Microsoft Excel 中的任何超链接时发生此事件
语法
表达式
.SheetFollowHyperlink(
Sh
,
Target
)
表达式
一个返回
Workbook
对象的表达式。
参数
Worksheet 对象。
代表一个工作表
Worksheet
对象是
Worksheets
集合的成员。
Worksheets
集合包含某个工作簿中所有的
Worksheet
对象。
Worksheet
对象也是 Sheets 集合的成员。
Sheets
集合包含工作簿中所有的工作表(图表工作表和工作表)。
Hyperlink 对象。
代表一个超链接。
Hyperlink
对象是
Hyperlinks
集合的成员。
使用
Hyperlink
属性可返回某个形状的超链接(一个形状只能有一个超链接)。下例激活形状一的超链接。
Worksheets(1).Shapes(1).Hyperlink.Follow NewWindow:=True
区域或工作表可以有多个超链接。使用
Hyperlinks
(
index
) 可返回单个
Hyperlink
对象,其中
index
是超链接编号。下例激活 A1:B2 区域中的第二个超链接。
Worksheets(1).Range("A1:B2").Hyperlinks(2).Follow
SheetPivotTableUpdate 事件
在数据透视表的工作表更新之后发生此事件。
语法
表达式
.SheetPivotTableUpdate(
Sh
,
Target
)
表达式
一个返回
Workbook
对象的表达式。
参数
示例
本示例显示一则消息,说明数据透视表的工作表已经更新。本示例假定您已在类模块中声明了带有事件且类型为
Application
或
Workbook
的对象。
Private Sub ConnectionApp_SheetPivotTableUpdate(ByVal shOne As Object, Target As PivotTable)
MsgBox "数据透视表连接已更新"
End Sub
SheetSelectionChange 事件
任一工作表上的选定区域发生更改时,将发生此事件(但图表工作表上的选定区域发生改变时,不会发生此事件)。
语法
表达式
.SheetSelectionChange(
Sh
,
Target
)
表达式
一个返回
Workbook
对象的表达式。
参数
示例
此示例在状态栏上显示选定区域所在工作表的名称及选定区域的地址。
Private Sub Workbook_
SheetSelectionChange
(ByVal Sh As Object, _
ByVal Target As Excel.Range)
Application.StatusBar = Sh.Name & ":" & Target.Address
End Sub
Sync 事件
当作为“文档工作区”一部分的工作表的本地副本与服务器上的副本进行同步时,发生此事件。
语法
表达式
.Sync(
SyncEventType
)
表达式
返回
Workbook
对象的表达式。
参数
示例
如果“文档工作区”中的工作表同步失败,则下例显示一条消息。
Private Sub Worksheet_
Sync
(ByVal SyncEventType As Office.MsoSyncEventType)
If SyncEventType = msoSyncEventDownloadFailed Or _
SyncEventType = msoSyncEventUploadFailed Then
MsgBox "文档同步失败。" & _
"请与管理员联系 " & vbCrLf & _
"或者稍后再试。"
End If
End Sub
WindowActivate 事件
工作簿窗口被激活时,将发生此事件。
语法
表达式
.WindowActivate(
Wn
)
表达式
一个代表
Workbook
对象的变量。
参数
示例
此示例在任何工作簿窗口被激活时将该窗口最大化。
Private Sub Workbook_
WindowActivate
(ByVal Wn As Excel.Window)
Wn.WindowState = xlMaximized
End Sub
WindowDeactivate 事件
任何工作簿窗口被停用时将发生此事件。
语法
表达式
.WindowDeactivate(
Wn
)
表达式
一个代表
Workbook
对象的变量。
参数
WindowResize 事件
任何工作簿窗口调整大小时将发生此事件。
语法
表达式
.WindowResize(
Wn
)
表达式
一个代表
Workbook
对象的变量。
参数
示例
此示例在任何工作簿窗口调整大小时运行。
Private Sub Workbook_
WindowResize
(ByVal Wn As Excel.Window)
Application.StatusBar = Wn.Caption & " resized"
End Sub