编写高效excel vba代码的最佳实践(一)

编写高效excel vba代码的最佳实践(一)

ID:8854866

大小:79.00 KB

页数:11页

时间:2018-04-09

编写高效excel vba代码的最佳实践(一)_第1页
编写高效excel vba代码的最佳实践(一)_第2页
编写高效excel vba代码的最佳实践(一)_第3页
编写高效excel vba代码的最佳实践(一)_第4页
编写高效excel vba代码的最佳实践(一)_第5页
资源描述:

《编写高效excel vba代码的最佳实践(一)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、编写高效ExcelVBA代码的最佳实践(一)时间:2009-06-1618:39:30来源:网络作者:未知点击:0次很多Excel VBA文章和图书都介绍过如何优化VBA代码,使代码运行得更快。下面搜集了一些使Excel VBA代码运行更快的技术和技巧,基本上都是实践经验的总结。如果您还有其它优化Excel VBA代码的方法,可以在本文后留言或给出链很多ExcelVBA文章和图书都介绍过如何优化VBA代码,使代码运行得更快。下面搜集了一些使ExcelVBA代码运行更快的技术和技巧,基本上都是实践经验的总结。如果您还有其它优化E

2、xcelVBA代码的方法,可以在本文后留言或给出链接,与大家分享。对于应用程序属性,在代码运行时关闭除必需属性以外的其它所有属性在代码运行时关闭不需要的Excel功能。其原因是,如果通过VBA更新不同的单元格区域,或者从不同的单元格区域复制/粘贴来创建汇总表,则不希望Excel浪费时间和资源来重新计算公式、显示粘贴进度或者重绘网格,尤其在每次单独的操作后(更有甚者,如果代码使用了循环,则每次单独操作后Excel都会在后台运行这些功能)。只需要在代码执行结束时进行一次重新计算和重绘就足以使工作簿更新。下面的代码将帮助您提高代码的

3、执行速度。(1)放置在主代码前的一段代码,获取Excel当前的属性状态,然后将其关闭'获得当前的Excel设置状态,将其放置在代码的开头screenUpdateState=Application.ScreenUpdatingstatusBarState=Application.DisplayStatusBarcalcState=Application.CalculationeventsState=Application.EnableEventsdisplayPageBreakState=ActiveSheet.DisplayP

4、ageBreaks'注:这是工作表级的设置'关闭一些Excel功能使代码运行更快Application.ScreenUpdating=FalseApplication.DisplayStatusBar=FalseApplication.Calculation=xlCalculationManualApplication.EnableEvents=FalseActiveSheet.DisplayPageBreaks=False'注:这是工作表级的设置(2)放置在主代码结束后的一段代码,用来将Excel恢复到代码运行前的设置'代码

5、运行后,恢复Excel原来的状态;将下面的代码放在代码的末尾Application.ScreenUpdating=screenUpdateStateApplication.DisplayStatusBar=statusBarStateApplication.Calculation=calcStateApplication.EnableEvents=eventsStateActiveSheet.DisplayPageBreaks=displayPageBreaksState'注:这是工作表级的设置下面简要解释这些设置:Appli

6、cation.ScreenUpdating:将该属性设置为False,告诉Excel不要重绘屏幕。其优点是不需要Excel花费资源来绘制屏幕,因而其改变会更快而不致让用户察觉其变化。因为如此频繁地绘制屏幕需要大量的资源,所以关闭绘制屏幕直到代码执行结束。在代码结束前,确保重新开启了该属性。Application.DisplayStatusBar:将该属性设置为False,告诉Excel停止显示状态栏。例如,如果使用VBA复制/粘贴单元格,当粘贴执行时Excel将在状态栏中显示操作的进度。关闭屏幕更新不会关闭状态栏显示,因此,如

7、果需要的话,可以禁用屏幕更新而仍然可以通过状态栏给用户提供反馈。记住,如果将该属性设置为False,在代码结束前应该将其设置为True。Application.Calculation:该属性允许编程设置Excel的计算模式。“手工的”(xlCalculationManual)模式意味着Excel等待用户(或代码)来触发计算;默认为“自动的”(xlCalculationAutomatic)模式,意味着由Excel来决定何时重新计算工作簿(例如,当在工作表中输入新公式时)。由于重新计算工作簿将花费时间且浪费资源,因此可能不希望每次

8、改变单元格值时Excel都触发重新计算。当代码执行时关闭重新计算,在代码结束前再设置回重新计算模式。Application.EnableEvents:将该属性设置为False,告诉Excel不要触发事件。你可能不希望Excel为每个正在通过代码发生改变的单元格触发事件,关闭事

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。