Workbook.SheetActivate 事件 當(dāng)激活任何工作表時發(fā)生此事件。 語法:SheetActivate(Sh ) Sh 必選參數(shù),Object類型,可以是Chart或Worksheet對象。 示例: Private Sub Workbook_SheetActivate(ByVal ShAs Object) MsgBox Sh.Name End Sub ‘每次激活工作表時顯示工作表的名稱
當(dāng)雙擊任何工作表時發(fā)生此事件,此事件先于默認(rèn)的雙擊操作發(fā)生。 語法:SheetBeforeDoubleClick(Sh, Target, Cancel) Sh 必選參數(shù),Object類型,代表工作表的Worksheet對象 Target 必選參數(shù),Range類型,雙擊發(fā)生時最靠近鼠標(biāo)指針的單元格 Cancel 必選參數(shù),Boolean類型,事件發(fā)生時為False,如果在事件過程中將此參數(shù)設(shè)為True,則在事件過程結(jié)束后,不執(zhí)行默認(rèn)的雙擊操作(不進入編輯模式) 這里大家可以留意下,凡是事件過程有參數(shù)變量為Cancel的,一般都可以取消某個操作了。 像之前講到的BefoeClose,BeforePrint,BeforeSave事件,都有一個Cancel參數(shù)。 注意:圖表工作表不發(fā)生此事件。 這里的雙擊操作還是有諸多限制的,只能是雙擊單元格區(qū)域才有效果,在單元格的邊框或四個角上雙擊不是會觸發(fā)事件的。比如選中某個單元格后,鼠標(biāo)指針指向選所單元格的四個角時,指針是顯示細(xì)線條的黑十字光標(biāo),此時雙擊是不會觸發(fā)SheetBeforeDoubleClick事件;指向所選單元格的四周邊框時,指針是十字箭頭光標(biāo),此時雙擊同樣也不會觸發(fā)。 另外,默認(rèn)的雙擊操作一般是進入到單元格的編輯模式。 示例: Private SubWorkbook_SheetBeforeDoubleClick(ByVal Sh As Object, _ ByVal Target As Range, ByVal Cancel As Boolean) Cancel = True End Sub ‘禁用默認(rèn)的雙擊操作,這樣就不能通過雙擊來修改單元格內(nèi)的公式了。 ‘當(dāng)然,你選中單元格后按F2鍵還是可以修改的。
右鍵單擊任一工作表時發(fā)生此事件,此事件先于默認(rèn)的右鍵單擊操作。 語法:SheetBeforeRightClick(Sh, Target, Cancel) 三個參數(shù)的意義可參考上面的SheetBeforeDoubleClick事件過程。 同樣,在圖表工作表中也不會發(fā)生此事件。 示例: Private SubWorkbook_SheetBeforeRightClick(ByVal Sh As Object, _ ByVal Target As Range, ByVal Cancel As Boolean) Cancel = True End Sub ‘禁用默認(rèn)的右鍵單擊操作(不會顯示右鍵菜單)。
在重新計算工作表時或在圖表上繪制更改的數(shù)據(jù)之后發(fā)生此事件。 直接按F9重新計算即可手工觸發(fā)此事件。 示例: Private Sub Workbook_SheetCalculate(ByValSh As Object) With Worksheets(1) .Range('a1:a100').Sort Key1:=.Range('a1') End With End Sub ‘在計算工作簿中的任何工作表時,對第一張工作表的 A1:A100 區(qū)域進行排序。
當(dāng)用戶或外部鏈接更改了任何工作表中的單元格時發(fā)生此事件。 語法:SheetChange(Sh, Target) Sh,必選參數(shù),Object類型,Worksheet對象,也就是被更改的單元格所在的工作表。 Target,必選參數(shù),Range類型,代表被更改的單元格區(qū)域 同樣的,圖表工作表是不會發(fā)生此事件的。 關(guān)于Change事件何時觸發(fā)何時不觸發(fā),下面幾種情況有必要了解: 設(shè)置單元格的格式不會觸發(fā),但是清除格式,粘貼格式,格式刷會觸發(fā)。 合并單元格,取消合并單元格不會觸發(fā)事件 針對單元格的批注操作是不會觸發(fā)事件的,象新建,刪除,修改批注。 雙擊單元格(或F2)后進入編輯模式后,不輸入任何內(nèi)容回車,或直接跳轉(zhuǎn)到其他單元格均會觸發(fā) 單元格內(nèi)的公式自動重新計算(或者按F9手工重新計算)不會觸發(fā)此事件 直接刪除一個空的單元格也會觸發(fā)事件 有的Excel命令操作單元格會觸發(fā),有的不會觸發(fā),象排序,合并不會觸發(fā),但清除格式會。 示例: Private Sub Workbook_SheetChange(ByVal ShAs Object, ByVal Target As Range) Dim strMsg$ strMsg = '工作表:' & Sh.Name & vbCrLf strMsg = strMsg & '單元格區(qū)域:' &Target.Address MsgBox strMsg End Sub If Sh.Name <> 'Sheet2' Then Exit Sub If Application.Intersect(Columns('a:c'), Target) Is NothingThen Exit Sub MsgBox'修改了A到C列的單元格' End Sub '由于Workbook對象的SheetChange事件是監(jiān)視整個工作簿內(nèi)所有工作表的單元格的變更 |
|