Excel工作表事件(1)

在VBA中事件是指對象可以辨認的動作,用戶可以指定VBA代碼來對這些動作做出響應。Excel可以監視多種不同類型的事件,例如Excel中的工作表、工作簿、應用程序、圖表工作表、透視表和控件等對象都可以響應事件,而且每個對象都有多種相關的事件。
事件過程作爲一種特殊的Sub過程,在滿足特定條件時被觸發執行,如果事件過程包含參數,系統會爲相關參數賦值。事件過程必須寫入相應的模塊中才能發揮其作用。
例如下面代碼爲工作表(Worksheet)事件過程須寫入相應的工作表模塊中,只有過程所在工作表的行爲可以觸發該事件代碼。此過程爲SelectionChange事件代碼,工作表選中區域發生變化將觸發此過程。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

  • 如何在VBE中插入過程代碼?
    在ExcelHome論壇的求助貼中,經常看到如下這樣的代碼,這個代碼功能沒有任何問題,但是從代碼可以得知這位作者花了不少時間輸入這些代碼。VBE的代碼編輯器自動完成功能並不完善,完全不能和主流開發語言的IDE相提並論,下面這樣的代碼基本上都是一個個字符輸入的,這樣的操作除了效率比較差外,更大的潛在問題是筆誤可以導致語法錯誤,這樣的錯誤很難調試和定位。
Private Sub worksheet_selectionchange(ByVal target As Range)
    MsgBox target.Address
End Sub

其實系統對象事件代碼的正確輸入方式是這樣的。在【工程資源瀏覽器】對話框中雙擊工作表對象,右側將打開該對象的代碼對話框;在對話框頂部左側單擊【對象】組合框展開按鈕,在下拉列表中單擊【Worksheet】,如下圖所示。
在這裏插入圖片描述
此時代碼窗口中將自動插入如下的SelectionChange事件代碼過程框架,如下圖所示。
在這裏插入圖片描述
【對象】組合框選中Worksheet之後,默認插入的是electionChange事件代碼過程框架,如果需要使用其他事件代碼,可以單擊右側的【事件】組合框,在下拉列表中選擇相應的事件名稱。
在這裏插入圖片描述

採用上述方法輸入的事件過程代碼框架,不僅僅是代碼美觀(大小規範),而且可以確保代碼的正確性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章