對比兩個程序的執行過程,你發現它們之間的區別了嗎?設置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來禁用事件。