【VBA研究】Application.Calculation状态影响VBA运行速度
来源:互联网 发布:mac word 复选框 编辑:程序博客网 时间:2024/06/07 20:42
作者:iamlaosong
发现一个现象,当Application.Calculation为自动计算状态时,如果工作表中存有公式,2003版似乎并不降低VBA的运行速度,但2007版则影响很大,速度降低的特别明显,尤其是数据量大,又含有数组公式或者大量使用vlookup、match之类的函数时,速度降低的令人难以忍受。为此,必须将Application.Calculation状态改为人工模式,等运行结束再还原。另一个影响VBA速度的因素是屏幕刷新,为提高速度,可以临时关闭屏幕刷新。即:
VBA通常在程序开始加两句:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
在结尾处再恢复:
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
需要注意的是,2003版上述两个计算状态对应的名称是:xlManual和xlAutomatic,这个变量名称2007版也可以用。
此外,恢复成自动计算模式时,系统会将公式重新计算一遍,即使再恢复前保存文件,系统也会在保存前自动计算一遍,除非你将“保存工作簿时重新计算”选项关闭:
Application.CalculateBeforeSave = False
0 0
- 【VBA研究】Application.Calculation状态影响VBA运行速度
- 【VBA】VBA定时运行程序
- 【VBA研究】VBA的InputBox函数和Application的InputBox方法
- offset,application---VBA应用
- Excel VBA - Application对象
- vba
- vba
- vba
- vba
- VBA
- vba
- VBA
- VBA
- VBA
- VBA
- VBA
- vba
- vba
- QApplication和QCoreApplication的用法
- PDCAR法则
- python 学习笔记(二十七)
- BZOJ 2683 简单题 CDQ分治+树状数组
- TCP/HTTP/Socket 浅析
- 【VBA研究】Application.Calculation状态影响VBA运行速度
- c标准库 setlocale
- iOS 之图片拖拽、捏合、双击缩放以及保存到相册
- Python自省(反射)指南
- Java 8:HashMap的性能提升
- 行人检测(Pedestrian Detection)资源
- Git学习系列(九)—— Git的版本控制的最佳实践
- HTML iframe 和 frameset 的区别
- ruby gem代理设置