很多 Excel VBA 文章和图书都介绍过如何优化 VBA 代码,使代码运行得更快。下面搜
集了一些使 Excel VBA 代码运行更快的技术和技巧,基本上都是实践经验的总结。如果您
还有其它优化 Excel VBA 代码的方法,可以在本文后留言或给出链接,与大家分享。
对于应用程序属性,在代码运行时关闭除必需属性以外的其它所有属性
在代码运行时关闭不需要的 Excel 功能。其原因是,如果通过 VBA 更新不同的单元格区域,
或者从不同的单元格区域复制 /粘贴来创建汇总表,则不希望 Excel 浪费时间和资源来重新
计算公式、显示粘贴进度或者重绘网格,尤其在每次单独的操作后(更有甚者,如果代码使
用了循环,则每次单独操作后 Excel 都会在后台运行这些功能)。只需要在代码执行结束时
进行一次重新计算和重绘就足以使工作簿更新。
下面的代码将帮助您提高代码的执行速度。
(1)放置在主代码前的一段代码,获取 Excel 当前的属性状态,然后将其关闭
'获得当前的 Excel 设置状态,将其放置在代码的开头
screenUpdateState = Application.ScreenUpdating
statusBarState = Application.DisplayStatusBar
calcState = Application.Calculation
eventsState = Application.EnableEvents
displayPageBreakState = ActiveSheet.DisplayPageBreaks '注:
这是工作表级的设置
'关闭一些 Excel 功能使代码运行更快
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False '注:这是工作表级的设
置
(2)放置在主代码结束后的一段代码,用来将 Excel 恢复到代码运行前的设置
评论0