您的位置:首页 > 移动开发

【VBA研究】Application.Calculation状态影响VBA运行速度

2015-01-05 17:21 567 查看
作者: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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐