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