下面介绍几个比较常用,也很有用的属性,包括ScreenUpdating(screen_updating)属性、DisplayAlerts(display_alerts)属性和WorksheetFunction属性。
刷新画面
Excel为用户提供了非常漂亮的图形用户界面,它相当于一个功能强大的虚拟办公环境。从编程的角度来讲,我们需要知道的是,这个漂亮的界面是由图形组成的,是“画”出来的。而且,当鼠标和键盘进行单击、移动、按下、释放等每一个动作时,这个画面都会刷新,即所谓的重画。当我们对工作表,对单元格进行频繁的操作,就会频繁地重画整个界面。
重画是需要时间的。所以,如果能关闭这个重画的动作,就能显著提高脚本的运行速度。这就是ScreenUpdating(screen_updating)这个属性的意义所在。
设置ScreenUpdating(screen_updating)的值为False时,关闭刷新画面的动作,此后对工作表,对单元格所做的任何改变不会在界面上显示出来,直到设置ScreenUpdating(screen_updating)属性的值为True。
>>> app.ScreenUpdating=False
注意,操作完成以后,要记得将该属性的值设置为True。
显示警告
编写程序,从来不是一蹴而就的事情,需要不断地调试,不断地发现错误改正错误。即使没有错误了,也会有不完美的地方。此时,程序运行时可能会弹出一些对话框来,给出一些提示或者警告什么的。这个事情会中断程序的运行,需要进行人工干预,关闭它以后程序才会继续运行。所以,它对于我们追求的自动化操作是一大威胁,不再丝滑。
这样的提示或警告并不是程序出错导致的,并不会影响程序的结果。使用DisplayAlerts (display_alerts)属性,设置它的值为False,可以禁止弹出这些对话框提示,从而保障程序流畅运行。当然,任务处理完以后,还需要将它的值设置为True。
>>> app.DisplayAlerts=False
调用工作表函数
Excel的工作表函数功能非常强大,编写脚本时,如果能够调用它们进行处理,将能事半功倍。
利用WorksheetFunction属性可以调用工作表函数,轻松完成很多任务。
对于图5-1工作表中给出的数据,可以使用工作表函数CountIf统计其中大于8的数据的个数。
图5-1 给定的数据
编写代码如下:
>>> app.WorksheetFunction.CountIf(app.Range("B2:F5"),">8")
7.0
输出结果为7.0,表示工作表给定范围内大于8的数据的个数为7。