对比两个程序的执行过程,你发现它们之间的区别了吗?设置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来禁用事件。