一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

跟煙花學(xué)習(xí)VBA之40:Workbook對象(七)

 fzchenwl 2015-04-01

 Workbook.SheetActivate 事件

  當(dāng)激活任何工作表時發(fā)生此事件。

  語法:SheetActivate(Sh )

  Sh 必選參數(shù),Object類型,可以是ChartWorksheet對象。

  示例:

  Private Sub Workbook_SheetActivate(ByVal ShAs Object)

   MsgBox Sh.Name

  End Sub

  每次激活工作表時顯示工作表的名稱



  Workbook.SheetBeforeDoubleClick 事件

  當(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,BeforePrintBeforeSave事件,都有一個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鍵還是可以修改的。



  Workbook.SheetBeforeRightClick 事件

  右鍵單擊任一工作表時發(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)的右鍵單擊操作(不會顯示右鍵菜單)。



  Workbook.SheetCalculate 事件

  在重新計算工作表時或在圖表上繪制更改的數(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ū)域進行排序。



  Workbook.SheetChange 事件

  當(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ā),但清除格式會。
  VBA代碼操作單元格時,是否會觸發(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

   Private Sub Workbook_SheetChange(ByVal ShAs Object, ByVal Target As Range)

    If Sh.Name <> 'Sheet2' Then Exit Sub

    If Application.Intersect(Columns('a:c'), Target) Is NothingThen Exit Sub

     MsgBox'修改了AC列的單元格'

    End Sub

  '由于Workbook對象的SheetChange事件是監(jiān)視整個工作簿內(nèi)所有工作表的單元格的變更
  '如果只需要監(jiān)視到某個特定的工作表,特定的單元格時,可用代碼進行判斷
  '當(dāng)然,也可以直接用工作表對象的Change事件,這樣只有特定工作表內(nèi)的單元格變更時才發(fā)觸發(fā)事件

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产精品免费视频视频| 国产又粗又猛又长又大| 激情中文字幕在线观看| 亚洲国产av一二三区| 字幕日本欧美一区二区| 国产精品日韩欧美一区二区| 99久久国产亚洲综合精品| 亚洲精品偷拍一区二区三区| 日本在线 一区 二区| 久久亚洲成熟女人毛片| 国产一区二区三区色噜噜| 国产伦精品一区二区三区高清版| 国产精品久久男人的天堂| 99久久精品午夜一区二区| 欧美一区二区三区99| 亚洲伦片免费偷拍一区| 少妇激情在线免费观看| 日本免费熟女一区二区三区| 国产福利在线播放麻豆| 好骚国产99在线中文| 91亚洲精品国产一区| 暴力三级a特黄在线观看| 久久婷婷综合色拍亚洲| 日韩蜜桃一区二区三区| 中文字幕免费观看亚洲视频| 国产91麻豆精品成人区| 中国美女草逼一级黄片视频| 毛片在线观看免费日韩| 夜夜躁狠狠躁日日躁视频黑人| 日韩欧美综合中文字幕| 国产伦精品一区二区三区高清版| 伊人色综合久久伊人婷婷| 日本人妻中出在线观看| 亚洲国产精品久久琪琪| 扒开腿狂躁女人爽出白浆av| 精品一区二区三区不卡少妇av| 绝望的校花花间淫事2| 日韩午夜福利高清在线观看| 美女被后入视频在线观看| 女人高潮被爽到呻吟在线观看| 99秋霞在线观看视频|