13竟秫、Excel事件程序

事件程序:事件娃惯,操作也。事件程序肥败,因操作而觸發(fā)自動運行程序趾浅。
編寫位置:工作表和工作表的代碼區(qū)

1、Change 事件

當用戶更改工作表中的單元格馒稍,或外部鏈接引起單元格的更改時產(chǎn)生此事件皿哨。

語法

Private Sub Worksheet_Change(ByVal Target As Range)

Target 更改的區(qū)域】昵可以是多個單元格仗颈。本質(zhì)上Target是工作表中的活動變量佛舱,代表著更改的區(qū)域

說明

1、重新計算引起的單元格更改不觸發(fā)本事件挨决∏胱妫可使用 Calculate 事件俘獲工作表重新計算操作。
2脖祈、Change事件肆捕,只要單元格有編輯的動作,無論單元格是否發(fā)生變化盖高,都會觸發(fā)Change事件慎陵。

示例

本示例將更改的單元格的顏色設(shè)為藍色。

Private Sub Worksheet_Change(ByVal Target as Range)
    Target.Font.ColorIndex = 5
End Sub

2喻奥、屏蔽和恢復(fù)事件觸發(fā)開關(guān)

EnableEvents 屬性

如果對指定對象啟用事件席纽,則該值為 True。Boolean 類型撞蚕,可讀寫润梯。

示例

本示例在保存文件之前禁用事件,以使 BeforeSave 事件不能觸發(fā)。

Application.EnableEvents = False
ActiveWorkbook.Save
Application.EnableEvents = True

3纺铭、Activate 事件

激活一個工作簿寇钉、工作表、圖表或嵌入圖表時產(chǎn)生此事件舶赔。

Private Sub object_Activate()

object Chart扫倡、Workbook、或者 Worksheet顿痪。有關(guān)對 Chart 對象使用事件的詳細信息镊辕,請參閱 Chart 對象事件的用法。

說明

切換兩個顯示同一個工作簿的窗口時蚁袭,將產(chǎn)生 WindowActivate 事件征懈,但不產(chǎn)生工作簿的 Activate 事件。

新建窗口時不產(chǎn)生本事件揩悄。

示例

當激活工作表時卖哎,本示例對 A1:A10 區(qū)域進行排序。

Private Sub Worksheet_Activate()
    Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending
End Sub

4删性、工作簿對象事件一覽表

當工作簿更改亏娜、工作簿中的任何工作表更改、加載宏更改或數(shù)據(jù)透視表更改時蹬挺,將引發(fā)工作簿事件维贺。工作簿上的事件在默認情況下是可用的。

Activate

激活工作薄時

AddinInstall

當工作簿作為加載宏安裝時

AddinUninstall

工作簿作為加載宏卸載時

BeforeClose

關(guān)閉工作薄前

BeforePrint

打印工作薄(或其中任何內(nèi)容)之前

BeforeSave

保存工作薄前

Deactivate

工作簿從活動狀態(tài)轉(zhuǎn)為非活動狀態(tài)時

NewSheet

在工作簿中新建工作表時

Open

打開工作簿時

PivotTableCloseConnection

在數(shù)據(jù)透視表關(guān)閉與其數(shù)據(jù)源的連接之后

PivotTableOpenConnection

在數(shù)據(jù)透視表打開與其數(shù)據(jù)源的連接之后

SheetActivate

激活任何一張表時

SheetBeforeDoubleClick

雙擊任何工作表時

SheetBeforeRightClick

鼠標右鍵單擊任一工作表時

SheetCalculate

工作表重新計算時

SheetChange

更改工作表中的單元格時

SheetDeactivate

任一工作表由活動狀態(tài)轉(zhuǎn)為非活動狀態(tài)時

SheetFollowHyperlink

單擊 Microsoft Excel 中的任意超鏈接時

SheetPivotTableUpdate

數(shù)據(jù)透視表的工作表更新之后

SheetSelectionChange

工作簿中的數(shù)據(jù)透視表更新之后

WindowActivate

工作簿的窗口激活時

WindowDeactivate

工作簿的窗口變?yōu)榉腔顒訝顟B(tài)時

WindowResize

工作簿窗口調(diào)整大小時

5巴帮、工作表(Worksheet) 對象事件一覽表

工作表上的事件在默認情況下是可用的溯泣。

Activate

激活工作表時

Deactivate

工作表從活動狀態(tài)轉(zhuǎn)為非活動狀態(tài)時

BeforeDoubleClick

雙擊工作表前

BeforeRightClick

右鍵單擊工作表時

Calculate

對工作表進行重新計算之后

Change

更改工作表中的單元格,或外部鏈接引起單元格時

FollowHyperlink

單擊工作表上的任意超鏈接時

PivotTableUpdate

在工作簿中的數(shù)據(jù)透視表更新之后

SelectionChange

工作表上的選定區(qū)域發(fā)生改變時

6榕茧、Excel程序事件程序

代碼位置:ThisWorkbook或類模塊中
適用范圍:所有打開的excel文件

在對 Application 對象使用事件之前垃沦,必須新建一個類模塊并聲明一個帶有事件的 Application 類型對象。例如用押,假定新建了一個 EventClassModule 類模塊肢簿,在該模塊中包含下列代碼。

Public WithEvents App As Application
在對新對象帶事件聲明完之后蜻拨,該對象將顯示在類模塊的“對象”下拉列表框中池充,并可以為此新對象編寫事件過程(在“對象”框中選取新對象時,“過程”下拉列表框中會自動顯示該對象的有效事件)缎讼。

在運行過程之前纵菌,必須將類模塊中聲明的對象與 Application 對象連接起來⌒莸樱可在任意的模塊中用下列代碼完成這一操作咱圆。

Dim X As New EventClassModule

Sub InitializeApp()
    Set X.App = Application
End Sub

在運行 InitializeApp 過程之后笛辟,類模塊中的 App 對象將指向 Microsoft Excel Application 對象,并且當事件發(fā)生時將執(zhí)行類模塊中的事件過程序苏。

如果想要將excel程序的事件程序運行在全部打開的excel文件中手幢,需要新建一個工作簿open事件程序,然后將excel程序?qū)ο笞兞抠x值給事件變量忱详,如上文中的App,代碼如下:

Private Sub Workbook_Open()
Set App = Excel.Application
End Sub

然后將含有該代碼的工作簿另存為加載項围来,位置任意;
最后再進行加載宏步驟匈睁,此時所有打開的excel文件都會執(zhí)行excel程序的時間程序监透。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市航唆,隨后出現(xiàn)的幾起案子胀蛮,更是在濱河造成了極大的恐慌,老刑警劉巖糯钙,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粪狼,死亡現(xiàn)場離奇詭異,居然都是意外死亡任岸,警方通過查閱死者的電腦和手機再榄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來享潜,“玉大人困鸥,你說我怎么就攤上這事〗0矗” “怎么了疾就?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吕座。 經(jīng)常有香客問我虐译,道長瘪板,這世上最難降的妖魔是什么吴趴? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮侮攀,結(jié)果婚禮上锣枝,老公的妹妹穿的比我還像新娘。我一直安慰自己兰英,他們只是感情好撇叁,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著畦贸,像睡著了一般陨闹。 火紅的嫁衣襯著肌膚如雪楞捂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天趋厉,我揣著相機與錄音寨闹,去河邊找鬼。 笑死君账,一個胖子當著我的面吹牛繁堡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播乡数,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼椭蹄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了净赴?” 一聲冷哼從身側(cè)響起绳矩,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎劫侧,沒想到半個月后埋酬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡烧栋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年写妥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片审姓。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡珍特,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出魔吐,到底是詐尸還是另有隱情扎筒,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布酬姆,位于F島的核電站嗜桌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏辞色。R本人自食惡果不足惜骨宠,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望相满。 院中可真熱鬧层亿,春花似錦、人聲如沸立美。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽建蹄。三九已至碌更,卻和暖如春裕偿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背痛单。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工击费, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桦他。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓蔫巩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親快压。 傳聞我的和親對象是個殘疾皇子圆仔,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 本例為設(shè)置密碼窗口 (1) If Application.InputBox(“請輸入密碼:”) = 1234 Th...
    浮浮塵塵閱讀 13,647評論 1 20
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,967評論 6 13
  • 1.1 VBA是什么 直到90年代早期,使應(yīng)用程序自動化還是充滿挑戰(zhàn)性的領(lǐng)域.對每個需要自動化的應(yīng)用程序,人們不得...
    浮浮塵塵閱讀 21,745評論 6 49
  • VBA訂制工具欄 http://club.excelhome.net/thread-1047254-1-1.htm...
    大海一滴寫字的地方閱讀 2,244評論 0 0
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常蔫劣。 O...
    我想起個好名字閱讀 5,311評論 0 9