Application icode9 对象代表Excel程序本身,它就像一棵树的根,Excel中所有的对象都以它为起点。实际编程时,会经常用到它的许多属性和方法。
1.用ScreenUpdating属性设置是否更新屏幕上的内容
在使用Excel解决一个问题时,往往需要执行多步操作或计算。无论是通过手动还是VBA代码完成这些操作,默认情况下,Excel都会将每步操作所得的结果显示在屏幕上。
Application对象的ScreenUpdating属性就是控制屏幕更新的开关,将该属性设置为False,Excel将会关闭屏幕更新。
Application.ScreenUpdating=False 关闭屏幕更新 Application.ScreenUpdating=True 重新开启屏幕更新
如果在程序中将ScreenUpdating属性设置为False,一定要记得在程序结束前将其重新设置为True,否则后面执行的程序也不会更新屏幕上的内容。
2.设置DisplayAlerts icode9 属性禁止显示警告对话框
当我们在Excel中执行某些操作,如删除工作表时,Excel会显示一个警告对话框,让我们确定是否需要执行这个操作,如图1所示。
图1 删除工作表时显示的警告对话框
出于很多原因,我们都希望Excel在程序执行的过程中,不显示警告对话框,这可以通过设置Application对象的DisplayAlerts属性为False来实现。
在下面示例代码中,如果不写第2行代码,那么在执行程序中,每删除一个工作表,就会弹出一次警告框,而且只有点击【删除】按钮才会执行删除操作。如果要删除100张工作表,就需要点击【删除】按钮100次。
Sub DelSht_2(icode9) Application.DisplayAlerts = False 设置不显示警告对话框 Dim sht As Worksheet For Each sht In Worksheets If sht.Name <> ActiveSheet.Name Then 判断sht引用的是否是活动工作表 sht.Delete 删除sht引用的工作表 End If Next sht Application.DisplayAlerts = True 重新设置显示警告对话框 End Sub
如果在程序中将DisplayAlerts属性设置为False,一定要记得在程序结束前将其重新设置为True,否则后面执行任何操作都不会弹出警告对话框。
3.借助WorksheetFunction属性使用工作表函数
常用的工作表函数,如SUMIF、VLOOKUP、MATCH和COUNTIF等函数VBA中没有,但是可以使用Application对象的WorksheetFunction属性来调用这些函数。
图2 编写代码统计A1:B50单元格区域中大于1000的数据个数
如想统计图2中A1:B50单元格区域中大于1000的数值有多少个,代码可以写为:
Sub CountTest_2() Dim mycount As Integer icode9 mycount = Application.WorksheetFunction.CountIf(Range("A1:B50"), ">1000") MsgBox "A1:B50中大于1000的单元格个数为:" & mycount End Sub
注:如果VBA中已经有了相同功能的函数,就不能再通过WorksheetFunction属性
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/292340.html