午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

Excel 工作簿、工作表事件例子

 望墨 2013-08-11

工作簿對(duì)象事件一覽表
當(dāng)工作簿更改、工作簿中的任何工作表更改、加載宏更改或數(shù)據(jù)透視表更改時(shí),將引發(fā)工作簿事件。工作簿上的事件在默認(rèn)情況下是可用的。若要查看工作簿的事件過(guò)程,請(qǐng)用鼠標(biāo)右鍵單擊處于還原狀態(tài)或最小化狀態(tài)的工作簿窗口標(biāo)題欄,再單擊快捷菜單上的“查看代碼”。在“過(guò)程”下拉列表框內(nèi)選擇事件名稱。

本示例在打開(kāi)工作簿時(shí)將 Microsoft Excel 窗口最大化。
Sub Workbook_Open()
    Application.WindowState = xlMaximized
End Sub
       
Activate 事件
激活一個(gè)工作簿、工作表、圖表或嵌入圖表時(shí)產(chǎn)生此事件。
Private Sub object_Activate()
object      Chart、Workbook、或者 Worksheet。有關(guān)對(duì) Chart 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 圖表對(duì)象事件的用法。
說(shuō)明
切換兩個(gè)顯示同一個(gè)工作簿的窗口時(shí),將產(chǎn)生 WindowActivate 事件,但不產(chǎn)生工作簿的 Activate 事件。
新建窗口時(shí)不產(chǎn)生本事件。
示例
當(dāng)激活工作表時(shí),本示例對(duì) A1:A10 區(qū)域進(jìn)行排序。
Private Sub Worksheet_Activate()
    Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending
End Sub

AddinInstall 事件
當(dāng)工作簿作為加載宏安裝時(shí),產(chǎn)生此事件。
Private Sub Workbook_AddinInstall()
示例
當(dāng)指定工作簿作為加載宏安裝時(shí),本示例將一個(gè)控件添加到常用工具欄中。
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
               
AddinUninstall 事件
當(dāng)工作簿作為加載宏卸載時(shí),產(chǎn)生此事件。
Private Sub Workbook_AddinUninstall()
說(shuō)明
卸載加載宏時(shí),該加載宏并不自動(dòng)關(guān)閉。
示例
當(dāng)指定工作簿作為加載宏卸載時(shí),本示例將 Microsoft Excel 最小化。
Private Sub Workbook_AddinUninstall()
    Application.WindowState = xlMinimized
End Sub

BeforeClose 事件
在關(guān)閉工作簿之前,先產(chǎn)生此事件。如果該工作簿已經(jīng)更改過(guò),則本事件在詢問(wèn)用戶是否保存更改之前產(chǎn)生。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel      當(dāng)事件產(chǎn)生時(shí)為 False。如果該事件過(guò)程將本參數(shù)設(shè)為 True,則停止對(duì)工作簿的關(guān)閉操作,工作薄仍處于打開(kāi)狀態(tài)。
示例
本示例將 BeforeClose 事件的響應(yīng)設(shè)置為保存工作簿的任何更改。
Private Sub Workbook_BeforeClose(Cancel as Boolean)
    If Me.Saved = False Then Me.Save
End Sub
         
BeforePrint 事件
在打印指定工作簿(或者其中的任何內(nèi)容)之前,產(chǎn)生此事件。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel      當(dāng)事件產(chǎn)生時(shí)為 False。如果該事件過(guò)程將本參數(shù)設(shè)為 True,則當(dāng)該過(guò)程運(yùn)行結(jié)束之后不打印工作簿。
示例
本示例在打印之前對(duì)當(dāng)前活動(dòng)工作簿的所有工作表重新計(jì)算。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    For Each wk in Worksheets
        wk.Calculate
    Next
End Sub

BeforeSave 事件
保存工作簿之前產(chǎn)生此事件。
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
SaveAsUi      如果顯示“另存為”對(duì)話框,則為 True。
Cancel      當(dāng)事件產(chǎn)生時(shí)為 False。如果該事件過(guò)程將本參數(shù)設(shè)為 True,則該過(guò)程執(zhí)行結(jié)束之后不保存工作簿。
示例
本示例在保存工作簿之前詢問(wèn)用戶是否保存。
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
       
Deactivate 事件
圖表、工作表或工作簿從活動(dòng)狀態(tài)轉(zhuǎn)為非活動(dòng)狀態(tài)時(shí)產(chǎn)生此事件。
Private Sub object_Deactivate()
object      Chart、Workbook 或者 Worksheet。有關(guān)對(duì) Chart 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Chart 對(duì)象事件的用法。
示例
本示例當(dāng)工作簿轉(zhuǎn)為非活動(dòng)狀態(tài)時(shí),對(duì)所有打開(kāi)的窗口進(jìn)行排列。
Private Sub Workbook_Deactivate()
    Application.Windows.Arrange xlArrangeStyleTiled
End Sub

NewSheet 事件
當(dāng)在工作簿中新建工作表時(shí)產(chǎn)生此事件。
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh      新工作表??梢允且粋€(gè) Worksheet 或 Chart 對(duì)象。
示例
本示例將新建的工作表移到工作簿的末尾。
Private Sub Workbook_NewSheet(ByVal Sh as Object)
    Sh.Move After:= Sheets(Sheets.Count)
End Sub
       
Open 事件
打開(kāi)工作簿時(shí),將產(chǎn)生本事件。
Private Sub Workbook_Open()
示例
每次打開(kāi)工作簿時(shí),本示例都最大化 Microsoft Excel 窗口。
Private Sub Workbook_Open()
    Application.WindowState = xlMaximized
End Sub

PivotTableCloseConnection 事件
發(fā)生在數(shù)據(jù)透視表關(guān)閉與其數(shù)據(jù)源的連接之后。
Private Sub expression_PivotTableCloseConnection(ByVal Target As PivotTable)
expression      引用在類(lèi)模塊中帶有事件聲明的 Workbook 類(lèi)型對(duì)象的變量。
Target    必需。選定的數(shù)據(jù)透視表。
示例
本示例顯示一則消息,說(shuō)明數(shù)據(jù)透視表與其數(shù)據(jù)源的連接已經(jīng)關(guān)閉。本示例假定您已在類(lèi)模塊中聲明了帶有事件的 Workbook 類(lèi)型的對(duì)象。
Private Sub ConnectionApp_PivotTableCloseConnection(ByVal Target As PivotTable)

    MsgBox "The PivotTable connection has been closed."

End Sub

PivotTableOpenConnection 事件
發(fā)生在數(shù)據(jù)透視表打開(kāi)與其數(shù)據(jù)源的連接之后。
Private Sub expression_PivotTableOpenConnection(ByVal Target As PivotTable)
expression      引用在類(lèi)模塊中帶有事件聲明的 Workbook 類(lèi)型對(duì)象的變量。
Target    必需。選定的數(shù)據(jù)透視表。
示例
本示例顯示一則消息,說(shuō)明數(shù)據(jù)透視表與其數(shù)據(jù)源的連接已經(jīng)打開(kāi)。本示例假定您已在類(lèi)模塊中聲明了帶有事件的 Workbook 類(lèi)型的對(duì)象。
Private Sub ConnectionApp_PivotTableOpenConnection(ByVal Target As PivotTable)

    MsgBox "The PivotTable connection has been opened."

End Sub

SheetActivate 事件
當(dāng)激活任何一張表時(shí)產(chǎn)生此事件。
Private Sub object_SheetActivate(ByVal Sh As Object)
object      Application 對(duì)象或 Workbook 對(duì)象。
Sh      激活的表??梢允且粋€(gè) Chart 對(duì)象或 Worksheet 對(duì)象。
示例
本示例顯示每一張激活的表的名稱。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    MsgBox Sh.Name
End Sub
       
SheetBeforeDoubleClick 事件
當(dāng)雙擊任何工作表時(shí)產(chǎn)生此事件,此事件先于默認(rèn)的雙擊操作發(fā)生。
Private Sub object_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, ByVal Cancel As Boolean)
object      Application 對(duì)象或 Workbook 對(duì)象。有關(guān)對(duì) Application 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Application 對(duì)象事件的用法。
Sh      代表該工作表的 Worksheet 對(duì)象。
Target      當(dāng)雙擊事件發(fā)生時(shí)最靠近鼠標(biāo)指針的單元格。
Cancel      當(dāng)事件發(fā)生時(shí)為 False。如果事件過(guò)程將該參數(shù)設(shè)為 True,則該過(guò)程執(zhí)行完之后將不進(jìn)行默認(rèn)的雙擊操作。
說(shuō)明
圖表不產(chǎn)生該事件。
示例
本示例關(guān)閉默認(rèn)的雙擊操作。
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, _
        ByVal Target As Range, ByVal Cancel As Boolean)
    Cancel = True
End Sub

SheetBeforeRightClick 事件
當(dāng)用鼠標(biāo)右鍵單擊任一工作表時(shí)產(chǎn)生此事件,此事件先于默認(rèn)的右鍵單擊操作。
Private Sub object_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, ByVal Cancel As Boolean)
object      Application 對(duì)象或 Workbook 對(duì)象。有關(guān)對(duì) Application 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Application 對(duì)象事件的用法。
Sh      代表該工作表的 Worksheet 對(duì)象。
Target      當(dāng)右鍵單擊事件發(fā)生時(shí)最靠近鼠標(biāo)指針的單元格。
Cancel      當(dāng)事件產(chǎn)生時(shí)為 False。如果該事件過(guò)程將本參數(shù)設(shè)為 True,則該過(guò)程執(zhí)行結(jié)束之后將不執(zhí)行默認(rèn)的右鍵單擊操作。
說(shuō)明
圖表不產(chǎn)生該事件。
示例
本示例關(guān)閉默認(rèn)的右鍵單擊操作。有關(guān)其他示例的詳細(xì)信息。請(qǐng)參閱 BeforeRightClick 事件示例。
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
        ByVal Target As Range, ByVal Cancel As Boolean)
    Cancel = True
End Sub

SheetCalculate 事件
當(dāng)對(duì)工作表重新計(jì)算或者在圖表上重新繪制發(fā)生更改的數(shù)據(jù)點(diǎn)時(shí)產(chǎn)生此事件。
Private Sub object_SheetCalculate(ByVal Sh As Object)
object      Application 對(duì)象或 Workbook 對(duì)象。有關(guān)對(duì) Application 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Application 對(duì)象事件的用法。
Sh      工作表??梢允且粋€(gè) Chart 對(duì)象或 Worksheet 對(duì)象。
示例
當(dāng)計(jì)算工作簿中的任何工作表時(shí),本示例對(duì)第一張工作表的 A1:A100 區(qū)域進(jìn)行排序。
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
    With Worksheets(1)
        .Range("a1:a100").Sort Key1:=.Range("a1")
    End With
End Sub
       
SheetChange 事件
當(dāng)用戶更改工作表中的單元格或者外部鏈接引起單元格的更改時(shí),產(chǎn)生此事件。
Private Sub object_SheetChange(ByVal Sh As Object, ByVal Source As Range)
object      Application 對(duì)象或 Workbook 對(duì)象。有關(guān)對(duì) Application 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Application 對(duì)象事件的用法。
Sh      代表該工作表的 Worksheet 對(duì)象。
Source      發(fā)生更改的區(qū)域。
說(shuō)明
圖表不產(chǎn)生該事件。
示例
當(dāng)任一工作表發(fā)生更改時(shí),運(yùn)行本示例。
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
        ByVal Source As Range)
    ' runs when a sheet is changed
End Sub
      
SheetDeactivate 事件
當(dāng)任一工作表由活動(dòng)狀態(tài)轉(zhuǎn)為非活動(dòng)狀態(tài)時(shí)產(chǎn)生此事件。
Private Sub object_SheetDeactivate(ByVal Sh As Object)
object      Application 對(duì)象或 Workbook 對(duì)象。
Sh      工作表??梢允且粋€(gè) Chart 對(duì)象或 Worksheet 對(duì)象。
示例
本示例顯示每一非活動(dòng)工作表的名稱。
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    MsgBox Sh.Name
End Sub
               
SheetFollowHyperlink 事件
單擊 Microsoft Excel 中的任意超鏈接時(shí)發(fā)生此事件。對(duì)于工作表級(jí)的事件,請(qǐng)參閱“幫助”主題中的 FollowHyperlink 事件。
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Sh      Object 類(lèi)型,必需。表示包含該超鏈接的 Worksheet 對(duì)象。
Target      Hyperlink 類(lèi)型,必需。一個(gè) Hyperlink 對(duì)象,該對(duì)象代表超鏈接的目標(biāo)位置。
示例
本示例對(duì)當(dāng)前工作簿中所有已單擊過(guò)的超鏈接保留一個(gè)列表或歷史記錄,其中也包括含有這些超鏈接的工作表名稱。
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh as Object, _
    ByVal Target As Hyperlink)
    UserForm1.ListBox1.AddItem Sh.Name & ":" & Target.Address
    UserForm1.Show
End Sub

SheetPivotTableUpdate 事件
發(fā)生在數(shù)據(jù)透視表的工作表更新之后。
Private Sub expression_SheetPivotTableUpdate(ByVal Sh As Object, Target As PivotTable)
expression      引用在類(lèi)模塊中帶有事件聲明的 Applicaton 類(lèi)型或 Workbook 類(lèi)型對(duì)象的變量。
Sh      必需。選定的工作表。
Target      必需。選定的數(shù)據(jù)透視表。
示例
本示例顯示一則消息,說(shuō)明數(shù)據(jù)透視表已經(jīng)更新。本示例假定您已在類(lèi)模塊中聲明了帶有事件的 Application 類(lèi)型或 Workbook 類(lèi)型的對(duì)象。
Private Sub ConnectionApp_SheetPivotTableUpdate(ByVal shOne As Object, Target As PivotTable)

    MsgBox "The SheetPivotTable connection has been updated."

End Sub
       
SheetSelectionChange 事件
任一工作表上的選定區(qū)域發(fā)生更改時(shí),將產(chǎn)生本事件。(但圖表上的選定對(duì)象發(fā)生改變時(shí),不會(huì)產(chǎn)生本事件。)
Private Sub object_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Excel.Range)
object      Application 對(duì)象或 Workbook 對(duì)象。有關(guān)對(duì) Application 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Application 對(duì)象事件的用法。
Sh      新選定的區(qū)域所在的工作表。
Target      新選定的區(qū)域。
示例
本示例在狀態(tài)欄上顯示選定區(qū)域所在的工作表名稱及選定區(qū)域的地址。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
        ByVal Target As Excel.Range)
    Application.StatusBar = Sh.Name & ":" & Target.Address
End Sub
               
WindowActivate 事件
工作簿的窗口激活時(shí),將產(chǎn)生本事件。
Private Sub object_WindowActivate(ByVal Wb As Excel.Workbook, ByVal Wn As Excel.Window)
object      Application 對(duì)象或 Workbook 對(duì)象。有關(guān)對(duì) Application 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Application 對(duì)象事件的用法。
Wb      僅用于 Application 對(duì)象。顯示在活動(dòng)窗口中的工作簿。
Wn      激活的窗口。
示例
本示例使工作簿窗口激活時(shí)最大化。
Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)
    Wn.WindowState = xlMaximized
End Sub
       
WindowDeactivate 事件
工作簿的窗口變?yōu)榉腔顒?dòng)狀態(tài)時(shí),將產(chǎn)生本事件。
Private Sub object_WindowDeactivate(ByVal Wb As Excel.Workbook, ByVal Wn As Excel.Window)
object      Application 對(duì)象或 Workbook 對(duì)象。有關(guān)對(duì) Application 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Application 對(duì)象事件的用法。
Wb      僅用于 Application 對(duì)象。非活動(dòng)狀態(tài)的窗口中的工作簿。
Wn      非活動(dòng)狀態(tài)的窗口。
示例
本示例使工作簿窗口變?yōu)榉腔顒?dòng)狀態(tài)時(shí)最小化。
Private Sub Workbook_WindowDeactivate(ByVal Wn As Excel.Window)
    Wn.WindowState = xlMinimized
End Sub
               
WindowResize 事件
工作簿窗口調(diào)整大小時(shí),將產(chǎn)生本事件。
Private Sub object_WindowResize(ByVal Wb As Excel.Workbook, ByVal Wn As Excel.Window)
object      Application 對(duì)象或 Workbook 對(duì)象。有關(guān)對(duì) Application 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Application 對(duì)象事件的用法。
Wb      僅用于 Application 對(duì)象。在調(diào)整大小的窗口中顯示的工作簿。
Wn      調(diào)整大小的窗口。
示例
工作簿窗口調(diào)整大小時(shí),將運(yùn)行本示例。
Private Sub Workbook_WindowResize(ByVal Wn As Excel.Window)
    Application.StatusBar = Wn.Caption & " resized"
End Sub

 

Worksheet 對(duì)象事件一覽表
工作表上的事件在默認(rèn)情況下是可用的。若要查看工作表的事件過(guò)程,請(qǐng)用鼠標(biāo)右鍵單擊工作表標(biāo)簽,再單擊快捷菜單上的“查看代碼”。在“過(guò)程”下拉列表框內(nèi)選擇事件名稱。

工作表級(jí)事件發(fā)生在工作表被激活、用戶更改工作表上的單元格或數(shù)據(jù)透視表更改時(shí)。下例在工作表重新計(jì)算時(shí)就調(diào)整 A 列到 F 列的大小。
Private Sub Worksheet_Calculate()
    Columns("A:F").AutoFit
End Sub               
有些事件可用于將某操作取代默認(rèn)的應(yīng)用程序操作,或?qū)δJ(rèn)操作進(jìn)行一些小改動(dòng)。下例捕獲了右鍵單擊事件,并在單元格區(qū)域 B1:B10 的快捷菜單中添加了新的菜單項(xiàng)。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
        Cancel As Boolean)
    For Each icbc In Application.CommandBars("cell").Controls
        If icbc.Tag = "brccm" Then icbc.Delete
    Next icbc
    If Not Application.Intersect(Target, Range("b1:b10")) _
            Is Nothing Then
        With Application.CommandBars("cell").Controls _
            .Add(Type:=msoControlButton, before:=6, _
                temporary:=True)
           .Caption = "New Context Menu Item"
           .OnAction = "MyMacro"
           .Tag = "brccm"
        End With
    End If
End Sub
Activate 事件
激活一個(gè)工作簿、工作表、圖表或嵌入圖表時(shí)產(chǎn)生此事件。
Private Sub object_Activate()
object      Chart、Workbook、或者 Worksheet。有關(guān)對(duì) Chart 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 圖表對(duì)象事件的用法。
說(shuō)明
切換兩個(gè)顯示同一個(gè)工作簿的窗口時(shí),將產(chǎn)生 WindowActivate 事件,但不產(chǎn)生工作簿的 Activate 事件。
新建窗口時(shí)不產(chǎn)生本事件。
示例
當(dāng)激活工作表時(shí),本示例對(duì) A1:A10 區(qū)域進(jìn)行排序。
Private Sub Worksheet_Activate()
    Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending
End Sub
       
Deactivate 事件
圖表、工作表或工作簿從活動(dòng)狀態(tài)轉(zhuǎn)為非活動(dòng)狀態(tài)時(shí)產(chǎn)生此事件。
Private Sub object_Deactivate()
object      Chart、Workbook 或者 Worksheet。有關(guān)對(duì) Chart 對(duì)象使用事件的詳細(xì)信息,請(qǐng)參閱 Chart 對(duì)象事件的用法。
示例
本示例當(dāng)工作簿轉(zhuǎn)為非活動(dòng)狀態(tài)時(shí),對(duì)所有打開(kāi)的窗口進(jìn)行排列。
Private Sub Workbook_Deactivate()
    Application.Windows.Arrange xlArrangeStyleTiled
End Sub
       
BeforeDoubleClick 事件
當(dāng)雙擊某工作表時(shí)產(chǎn)生此事件,此事件先于默認(rèn)的雙擊操作。
Private Sub expression_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
expression      引用在類(lèi)模塊中帶有事件聲明的 Worksheet 類(lèi)型對(duì)象的變量。
Target    必需。雙擊發(fā)生時(shí)最靠近鼠標(biāo)指針的單元格。
Cancel    可選。當(dāng)事件發(fā)生時(shí)為 False。如果事件過(guò)程將該參數(shù)設(shè)為 True,則該過(guò)程執(zhí)行完之后將不進(jìn)行默認(rèn)的雙擊操作。
說(shuō)明
使用 DoubleClick 方法并不觸發(fā)本事件。
用戶雙擊單元格的邊框時(shí)不觸發(fā)本事件。

BeforeRightClick 事件
當(dāng)用鼠標(biāo)右鍵單擊某工作表時(shí)產(chǎn)生此事件,此事件先于默認(rèn)的右鍵單擊操作。
Private Sub expression_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
expression      引用在類(lèi)模塊中帶有事件聲明的 Worksheet 類(lèi)型對(duì)象的變量。
Target      必需。右鍵單擊發(fā)生時(shí)最靠近鼠標(biāo)指針的單元格。
Cancel    可選。當(dāng)事件發(fā)生時(shí)為 False。如果該事件過(guò)程將本參數(shù)設(shè)為 True,則該過(guò)程執(zhí)行結(jié)束之后不進(jìn)行默認(rèn)的右鍵單擊操作。
說(shuō)明
與其他工作表事件相似,當(dāng)指針位置在圖形或命令欄(工具欄或者菜單欄)上時(shí),右鍵單擊不觸發(fā)本事件。
示例
應(yīng)用于 Worksheet 對(duì)象。
本示例為 B1:B10 單元格添加新的快捷菜單項(xiàng)。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _
        Cancel As Boolean)
    Dim icbc As Object
    For Each icbc In Application.CommandBars("cell").Controls
        If icbc.Tag = "brccm" Then icbc.Delete
    Next icbc
    If Not Application.Intersect(Target, Range("b1:b10")) _
        Is Nothing Then
            With Application.CommandBars("cell").Controls _
                .Add(Type:=msoControlButton, before:=6, _
                temporary:=True)
           .Caption = "New Context Menu Item"
           .OnAction = "MyMacro"
           .Tag = "brccm"
        End With
    End If
End Sub

Calculate 事件
對(duì)于 Chart 對(duì)象,在圖表對(duì)新的數(shù)據(jù)點(diǎn)或者更改的數(shù)據(jù)點(diǎn)繪制之后產(chǎn)生此事件。對(duì)于 Worksheet 對(duì)象,在對(duì)工作表進(jìn)行重新計(jì)算之后產(chǎn)生此事件。
Private Sub object_Calculate()
object     Chart 或者 Worksheet。有關(guān)對(duì) Chart 對(duì)象使用事件的詳細(xì)內(nèi)容,請(qǐng)參閱 Chart 對(duì)象事件的用法。
示例
每當(dāng)工作表重新計(jì)算時(shí),本示例就調(diào)整 A 列到 F 列的寬度。
Private Sub Worksheet_Calculate()
    Columns("A:F").AutoFit
End Sub
               

Change 事件
當(dāng)用戶更改工作表中的單元格,或外部鏈接引起單元格的更改時(shí)產(chǎn)生此事件。
Private Sub Worksheet_Change(ByVal Target As Range)
Target      更改的區(qū)域??梢允嵌鄠€(gè)單元格。
說(shuō)明
重新計(jì)算引起的單元格更改不觸發(fā)本事件??墒褂?Calculate 事件俘獲工作表重新計(jì)算操作。
示例
本示例將更改的單元格的顏色設(shè)為藍(lán)色。
Private Sub Worksheet_Change(ByVal Target as Range)
    Target.Font.ColorIndex = 5
End Sub

FollowHyperlink 事件
當(dāng)單擊工作表上的任意超鏈接時(shí),發(fā)生此事件。對(duì)于應(yīng)用程序級(jí)或工作簿級(jí)的事件,請(qǐng)參閱 SheetFollowHyperlink 事件。
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Target   Hyperlink 類(lèi)型,必需。一個(gè)代表超鏈接目標(biāo)位置的 Hyperlink 對(duì)象。
示例
本示例對(duì)在當(dāng)前活動(dòng)工作簿中訪問(wèn)過(guò)的所有鏈接保留一個(gè)列表或歷史記錄。
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    With UserForm1
        .ListBox1.AddItem Target.Address
        .Show
    End With
End Sub
       
PivotTableUpdate 事件
發(fā)生在工作簿中的數(shù)據(jù)透視表更新之后。
Private Sub expression_PivotTableUpdate(ByVal Target As PivotTable)
expression      引用在類(lèi)模塊中帶有事件聲明的 Worksheet 類(lèi)型對(duì)象的變量。
Target  必需。選定的數(shù)據(jù)透視表。
示例
本示例顯示一則消息,說(shuō)明數(shù)據(jù)透視表已經(jīng)更新。本示例假定您已在類(lèi)模塊中聲明了帶有事件的 Worksheet 類(lèi)型的對(duì)象。
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

    MsgBox "The PivotTable connection has been updated."

End Sub

SelectionChange 事件
當(dāng)工作表上的選定區(qū)域發(fā)生改變時(shí),將產(chǎn)生本事件。
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Target      新選定的區(qū)域。
示例
本示例滾動(dòng)工作簿窗口,直至選定區(qū)域位于窗口的左上角。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ActiveWindow
        .ScrollRow = Target.Row
        .ScrollColumn = Target.Column
    End With
End Sub

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多