vba 提高Excel中VBA的运行效率
一、尽量使用VBA原有的属性、方法和Worksheet函数
set xx=Nothing
二、尽量减少使用对象引用
set xx=Nothing
每一个 Excel 对象的属性、方法的调用都需要通过 OLE 接口的一个或多个调用,这些 OLE调用都是需要时间的,减少使用对象引用能加快VBA代码的运行
使用With……End With语句,尽量减少对象引用
三、减少对象的激活和选择
set xx=Nothing
如果你的通过录制宏来学习VBA的,则你的VBA程序里一定充满了对象的激活和选择,例如Workbooks(XXX).Activate、Sheets(XXX).Select、Range(XXX).Select 等,但事实上大多数情况下这些操作不是必需的。删除这些代码可加快vba运行速度
四、关闭屏幕更新
vba代码复杂时,关闭屏幕更新是提高VBA程序运行速度的最有效的方法,缩短运行时间2/3左右。
set xx=Nothing
关闭屏幕更新,则执行宏时不会实时看到excel内数据的变化
关闭屏幕更新的方法:
Application.ScreenUpdate = False ‘在过程的最开始写入该代码
请不要忘记VBA程序运行结束时再将该值设回来:
Application.ScreenUpdate = True '在过程的末尾写入该代码
五、退出程序前销毁程序中使用的对象
set xx=Nothing
六、For each循环比For Next循环快