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

分享

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

 fzchenwl 2015-04-01

 Workbook.SheetActivate 事件

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

  語(yǔ)法:SheetActivate(Sh )

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

  示例:

  Private Sub Workbook_SheetActivate(ByVal ShAs Object)

   MsgBox Sh.Name

  End Sub

  每次激活工作表時(shí)顯示工作表的名稱



  Workbook.SheetBeforeDoubleClick 事件

  當(dāng)雙擊任何工作表時(shí)發(fā)生此事件,此事件先于默認(rèn)的雙擊操作發(fā)生。

  語(yǔ)法:SheetBeforeDoubleClick(Sh, Target, Cancel)

  Sh 必選參數(shù),Object類型,代表工作表的Worksheet對(duì)象

  Target 必選參數(shù),Range類型,雙擊發(fā)生時(shí)最靠近鼠標(biāo)指針的單元格

  Cancel 必選參數(shù),Boolean類型,事件發(fā)生時(shí)為False,如果在事件過程中將此參數(shù)設(shè)為True,則在事件過程結(jié)束后,不執(zhí)行默認(rèn)的雙擊操作(不進(jìn)入編輯模式)

  這里大家可以留意下,凡是事件過程有參數(shù)變量為Cancel的,一般都可以取消某個(gè)操作了。

  像之前講到的BefoeCloseBeforePrint,BeforeSave事件,都有一個(gè)Cancel參數(shù)。

  注意:圖表工作表不發(fā)生此事件。

  這里的雙擊操作還是有諸多限制的,只能是雙擊單元格區(qū)域才有效果,在單元格的邊框或四個(gè)角上雙擊不是會(huì)觸發(fā)事件的。比如選中某個(gè)單元格后,鼠標(biāo)指針指向選所單元格的四個(gè)角時(shí),指針是顯示細(xì)線條的黑十字光標(biāo),此時(shí)雙擊是不會(huì)觸發(fā)SheetBeforeDoubleClick事件;指向所選單元格的四周邊框時(shí),指針是十字箭頭光標(biāo),此時(shí)雙擊同樣也不會(huì)觸發(fā)。

  另外,默認(rèn)的雙擊操作一般是進(jìn)入到單元格的編輯模式。

  示例:

   Private SubWorkbook_SheetBeforeDoubleClick(ByVal Sh As Object, _

          ByVal Target As Range, ByVal Cancel As Boolean)

    Cancel = True

   End Sub

   禁用默認(rèn)的雙擊操作,這樣就不能通過雙擊來(lái)修改單元格內(nèi)的公式了。

   當(dāng)然,你選中單元格后按F2鍵還是可以修改的。



  Workbook.SheetBeforeRightClick 事件

  右鍵單擊任一工作表時(shí)發(fā)生此事件,此事件先于默認(rèn)的右鍵單擊操作。

  語(yǔ)法:SheetBeforeRightClick(Sh, Target, Cancel)

  三個(gè)參數(shù)的意義可參考上面的SheetBeforeDoubleClick事件過程。

  同樣,在圖表工作表中也不會(huì)發(fā)生此事件。

  示例:

   Private SubWorkbook_SheetBeforeRightClick(ByVal Sh As Object, _

           ByVal Target As Range, ByVal Cancel As Boolean)

       Cancel = True

   End Sub

  禁用默認(rèn)的右鍵單擊操作(不會(huì)顯示右鍵菜單)。



  Workbook.SheetCalculate 事件

  在重新計(jì)算工作表時(shí)或在圖表上繪制更改的數(shù)據(jù)之后發(fā)生此事件。

  直接按F9重新計(jì)算即可手工觸發(fā)此事件。

  示例:

  Private Sub Workbook_SheetCalculate(ByValSh As Object)

   With Worksheets(1)

      .Range('a1:a100').Sort Key1:=.Range('a1')

     End With

  End Sub

  在計(jì)算工作簿中的任何工作表時(shí),對(duì)第一張工作表的 A1:A100 區(qū)域進(jìn)行排序。



  Workbook.SheetChange 事件

  當(dāng)用戶或外部鏈接更改了任何工作表中的單元格時(shí)發(fā)生此事件。

  語(yǔ)法:SheetChange(Sh, Target)

  Sh,必選參數(shù),Object類型,Worksheet對(duì)象,也就是被更改的單元格所在的工作表。

  Target,必選參數(shù),Range類型,代表被更改的單元格區(qū)域

  同樣的,圖表工作表是不會(huì)發(fā)生此事件的。


  關(guān)于Change事件何時(shí)觸發(fā)何時(shí)不觸發(fā),下面幾種情況有必要了解:

  設(shè)置單元格的格式不會(huì)觸發(fā),但是清除格式,粘貼格式,格式刷會(huì)觸發(fā)。

  合并單元格,取消合并單元格不會(huì)觸發(fā)事件

  針對(duì)單元格的批注操作是不會(huì)觸發(fā)事件的,象新建,刪除,修改批注。

  雙擊單元格(或F2)后進(jìn)入編輯模式后,不輸入任何內(nèi)容回車,或直接跳轉(zhuǎn)到其他單元格均會(huì)觸發(fā)

  單元格內(nèi)的公式自動(dòng)重新計(jì)算(或者按F9手工重新計(jì)算)不會(huì)觸發(fā)此事件

  直接刪除一個(gè)空的單元格也會(huì)觸發(fā)事件

  有的Excel命令操作單元格會(huì)觸發(fā),有的不會(huì)觸發(fā),象排序,合并不會(huì)觸發(fā),但清除格式會(huì)。
  VBA代碼操作單元格時(shí),是否會(huì)觸發(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對(duì)象的SheetChange事件是監(jiān)視整個(gè)工作簿內(nèi)所有工作表的單元格的變更
  '如果只需要監(jiān)視到某個(gè)特定的工作表,特定的單元格時(shí),可用代碼進(jìn)行判斷
  '當(dāng)然,也可以直接用工作表對(duì)象的Change事件,這樣只有特定工作表內(nèi)的單元格變更時(shí)才發(fā)觸發(fā)事件

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(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)論公約

    類似文章 更多