上一期VBA入門知識(shí)為大家介紹的是如何在Visual Basic中使用Excel工作表函數(shù),各位小伙伴都學(xué)會(huì)了嗎?剛好前兩天SUT學(xué)習(xí)交流群中有位小伙伴咨詢了一個(gè)問題,該問題的解決方法也有小伙伴解決了,截圖如下: 東陽這位小伙伴給出的代碼如下:
代碼演示如下,詳見如下動(dòng)態(tài)圖(右鍵鼠標(biāo)可以清空單元格內(nèi)容): 上面的一段代碼就用到了幾個(gè)常用的事件,其實(shí)還有其他更多的事件。事件大體可以分為兩類,一類是工作簿事件,另一類是工作表事件。 工作簿事件:當(dāng)工作簿更改、工作簿中的任何工作表更改、加載宏更改或數(shù)據(jù)透視表更改時(shí),將引發(fā)工作簿事件。工作簿上的事件在默認(rèn)情況下是可用的。工作簿對(duì)象事件一覽表如下圖所示: 工作表事件:當(dāng)工作表激活、工作表中的任何單元格更改、數(shù)據(jù)透視表更改時(shí),將引發(fā)工作表事件。工作表上的事件在默認(rèn)情況下是可用的。工作表對(duì)象事件一覽表如下圖所示: 這么多事件,難道都需要記住每個(gè)事件的名稱和用法嗎?當(dāng)然不用,名稱和參數(shù)都可以使用Excel的VBE自動(dòng)生成,具體操作如下: 工作表、圖表工作表和工作簿事件處理過程對(duì)任意打開的工作表或工作簿都有效。如果要為嵌入式圖表、查詢表或 Application 對(duì)象編寫事件處理過程,則必須在類模塊中用 WithEvents 關(guān)鍵字創(chuàng)建新的對(duì)象。 可用 EnableEvents 屬性激活或禁用事件。例如,使用 Save 方法保存工作表時(shí),將引發(fā) BeforeSave 事件??稍谡{(diào)用 Save 方法之前將 EnableEvents 屬性設(shè)置為False,以防止該事件的引發(fā)。具體代碼如下:
代碼演示如下動(dòng)態(tài)圖所示: 還記得文章開頭那位小伙伴寫的代碼里面就用到了這個(gè) EnableEvents 屬性來禁用工作表Change事件。等單元格值從新計(jì)算后,再啟用該事件。如果不這么做,更改完單元格A1的值后,代碼將進(jìn)入死循環(huán),表現(xiàn)出來的就是你的Excel工作簿處于假死狀態(tài)~感興趣的可以試試,測試之前請(qǐng)保存好Excel文檔?。?! |
|