我们在了解了三大件range,worksheet和workbook对象之后,已经能够自己写一些小的需求了。但实际Excel VBA中还有别的对象,比如今天我们要介绍的Application对象。 在这之前,先放一张A哥从网上找到的Excel对象模型,大家可以结合之前学习的对象三大件来体会一下。 没错,Application对象其实就是指代的是整个Excel应用, 处在Excel对象模型的最顶层。通过对application对象我们可以实现更多的顶层的需求,例如自定义状态栏等等。这个我们后面会讲到。 事实上,Application 在实虽然可以千变万化,但际操作中,如果仅仅是应付日常的自动化工作,掌握以下几个就可以了。 ScreenUpdating不知道大家注意到没,在有些程序的运行过程中,我们经常会看到窗口在不停的跳动,最开始看起来万分酷炫。 这实际上,就是在运行过程中,每执行一步,excel窗口就刷新一次,把最新的窗口显示出来。从运行效率上来讲,这样运行程序效率是不高的。 怎么样来调整呢?我们需要设置用到Application.ScreenUpdating为False即可。但一定要 Sub test_application()
'Application.ScreenUpdating = False
start_time = Timer
'用Timer来记录当前开始时间
For i = 1 To 1000
Worksheets(i Mod 2 1).Select
Next
end_time = Timer
'记录结束时间
'Application.ScreenUpdating = True
MsgBox (end_time - start_time) & ' s'
End Sub 我们如果不设置ScreenUpdating属性,F5运行看看,使用了3.55秒。 DisplayAlerts在程序运行过程中,有时由于Excel本身设置的原因,会弹出对话框,从而中断程序的运行。比方说,如果我们要保存当前工作簿,可以很简单的写一句 thisworkbook.save 然后运行,我们正准备心满意足的准备进行下一步时,天边突然飘来一个窗口 事实上,这是Excel自带的一种可谓保护和提醒机制,就像是我们要关闭一个文档,系统会提醒我们是否要保存修改一样。但在有的时候,我们是很确定要保存修改,所以我们不想看到这个对话框。怎么办? Sub test_application2()
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
End Sub 在我们上次弹出的对话框里,系统的默认选择是Ok,所以系统会按照OK继续执行程序,而不弹出对话框。 在程序运行的结尾,作为一个良好的习惯,我们还是要把显示提醒重新设置为True,但忘了设置怎么办?别担心,微软的程序员们早就想好了。他们会在程序运行之后自动把Application.DisplayAlerts设置为True,这样子妈妈就再也不担心我的Excel不跳出提醒了! 除了上面两个之外,Application对象的方法和事件还有很多,在这里就不一一介绍了,大家可以自行F1来使用微软的帮助来查看更多功能。 总结
|
|