讀古今文學網 > 別怕,ExcelVBA其實很簡單 > 練習小課堂 >

練習小課堂

對比兩個程序的執行過程,你發現它們之間的區別了嗎?設置ScreenUpdating屬性有什麼作用?試著小結一下。

參考答案

區別在於是否將程序運行過程中的計算結果顯示到屏幕上。

設置ScreenUpdating屬性為False,將看不到程序的執行過程,可以加快程序的執行速度,讓程序顯得直觀、專業。

4.2.2 DisplayAlerts屬性

煩人的刪除工作表

這是一個刪除工作表的小程序:

但是,程序運行後並不順暢,如圖4-5所示。

圖4-5 刪除工作表前的警告對話框

取消顯示警告對話框

如果想取消顯示對話框,只需要對程序作簡單的修改:

修改完成後,再次運行程序,警告對話框徹底消失了。

DisplayAlerts屬性,詳細的介紹

Application對象的DisplayAlerts屬性決定在程序運行中是否顯示警告信息,默認值為True,如果不想在程序運行時被提示和警告信息打擾,可在程序開始時將屬性設為False。但如果在程序中修改了該屬性為False,在程序結束前請記得將它設回True。

4.2.3 EnableEvents 屬性

可以通過設置Application對象的EnableEvents屬性來啟用或禁用事件。

什麼是事件

事件是能被Excel認識的一個操作動作(參閱5.1.2小節)。

Excel裡的許多操作都會觸發事件,如打開工作簿、關閉工作簿等。用戶可以編寫不同的代碼來響應這些事件,當觸發某個事件時,自動執行指定的代碼。

自動寫入單元格地址

編寫一個程序,當選中工作表中的單元格時,自動在單元格中寫入該單元格的地址,如圖4-6所示。

圖4-6 在工作表對像中輸入程序

完成後返回該工作表區域,選中任意一個單元格,Excel會自動將該單元格的地址寫入單元格中,如圖4-7所示。

圖4-7 自動填寫單元格地址



這個程序是Worksheet_SelectionChange事件的應用,當用戶更改選中的單元格時,自動運行Sub與End Sub之間的代碼。

什麼是禁用事件

禁用事件就是執行操作後不讓事件發生。

如果禁用了事件,更改選中的單元格,Sub與End Sub之間的代碼並不會運行。

在VBA裡,可以設置Application對象的EnableEvents的屬性為False來禁用事件。