點(diǎn)擊上方
藍(lán)色
文字 關(guān)注我們吧!
送人玫瑰,手有余香,請將文章分享給更多朋友
動手操作是熟練掌握EXCEL的最快捷途徑!
在VBA中,當(dāng)執(zhí)行“打開工作簿”、“選擇工作表”、“改變單元格的內(nèi)容”等操作時,可以由此為觸發(fā)條件(事件)自動執(zhí)行某些過程。把由這些特定的操作觸發(fā)并且自動被執(zhí)行的過程,叫做事件過程。
事件過程是編寫在觸發(fā)事件的工作簿或工作表等對象的模塊當(dāng)中的。下面就是一個簡單的事件過程。
當(dāng)事件被執(zhí)行后就自動運(yùn)行宏。
制作事件過程
事件過程是針對觸發(fā)事件的工作簿或工作表的,是編寫在這些事件對象的模塊當(dāng)中的。例如,針對工作簿事件的事件過程編寫在“ThisWorkbook模塊”中。
事件過程是在作為事件對象的對象模塊的代碼窗口內(nèi)進(jìn)行編寫的。事件過程名是在對象名和事件名中用“_(半角下劃線)”連接起來按照“對象名_事件名”命名的,用戶不能自由命名。
事件過程的語法:
Private Sub 對象名_事件名(參數(shù))
事件發(fā)生的時候采取的操作
End Sub
下面制作一個工作表顯示時候執(zhí)行的宏作為例子
雙擊“ThisWorkbook”選項
自動生成“ThisWorkbook_Open”的事件過程。如果不需要,也可以將它刪除,在過程框中選擇事件,生成選擇的事件過程。
編寫事件發(fā)生時候執(zhí)行的代碼
執(zhí)行效果如下:
事件的種類
作為對象的事件有很多種,例如打開工作簿的時候發(fā)生的Open事件,選擇工作表時發(fā)生的Active事件等。理解事件的種類在“這個時候想做這樣的事情”時可以知道選擇哪個事件比較合適。
下面簡單介紹一下事件過程參數(shù)的使用方法。
在事件過程中有參數(shù),例如在Workbook_SHeetActive事件過程中,有保存當(dāng)前激活工作表的參數(shù)“Sh”。
Worksheet_Change事件過程
Worksheet_Change事件過程是單元格的內(nèi)容被更改的時候調(diào)用的事件過程。這個事件過程有一個“Target”參數(shù)。“Target”中保存了內(nèi)容發(fā)生變化的所有單元格。也就是可以在該過程中編寫針對Target中存放的所有單元格的處理代碼。
使事件過程不發(fā)生的操作
事件不僅在用戶操作的時候發(fā)生,在執(zhí)行過程代碼時也會發(fā)生,因此在過程內(nèi)發(fā)生的事件有時候也會產(chǎn)生不希望的結(jié)果。這種時候可以臨時取消過程運(yùn)行時事件的發(fā)生,以及取消不必要的事件發(fā)生。為了取消事件的發(fā)生,設(shè)定Application對象的EnableEvents屬性為False。如果在過程執(zhí)行前設(shè)定了EnableEvents屬性,那么可以阻止在過程運(yùn)行中觸發(fā)其它事件過程。
阻止事件發(fā)生的語法:
Application.EnableEvents=False
使用“Application.EnableEvents=False”取消事件的發(fā)生,以后所有的事件都被阻止,那么事件過程功能就被取消了。因此在臨時取消事件發(fā)生的時候,必須在后面使用“Application.EnableEvents=True”來解除取消事件發(fā)生。
-END-
長按下方二維碼關(guān)注EXCEL應(yīng)用之家
面對EXCEL操作問題時不再迷茫無助
推薦閱讀:
戳原文,更有料!免費(fèi)模板文檔!
聯(lián)系客服