我一直在测量代码执行时间,以测量在本地执行脚本和在服务器上执行脚本的差异。有一次,我忘了禁用screen updating,幸好在考虑更多细节之前,我对闪光灯不敏感:
当我第一次开始使用VBA时,我总是假设它只是被使用过,这样它就不会吓到最终用户,让他们认为他们的PC即将崩溃。当我开始阅读更多关于提高代码效率的文章时,我明白了它的用途,但是screen updating到底对您的代码执行时间有多大的影响呢?
发布于 2012-09-12 23:37:37
首先,我一直在使用由Richie (UK) Post #7 Here编写的脚本
它简单地迭代了一个循环,改变了一个单元格中i的值。我稍微改变了它,所以它循环了10,000次,为了样本大小,我执行了10次。
屏幕更新对我的代码执行速度有什么影响?
以下是禁用和启用Screen Updating时的执行长度:
Disabled Enabled
0.61909653 2.105066913
0.619555829 2.106865363
0.620805767 2.106866315
0.625528325 2.102403315
0.625319976 2.0991179
0.621287448 2.105103142
0.621540236 2.101392665
0.624537531 2.106866716
0.620401789 2.109004449如您所见,在未禁用Screen Updating的情况下,执行代码所需的时间几乎是原来的3.5倍。
这两个代码都是使用VB编辑器中的Run按钮执行的,而不是“查看”电子表格。
代码的开头和结尾处有两行简单的代码:
Application.ScreenUpdating = False
Application.ScreenUpdating = True但是,它们会对你的执行效率有很大的影响!
注意:显然,Screen Updating的优势在这里是众所周知的,但这对初学者可能是有好处的,我发现查看这些数字很有趣!
https://stackoverflow.com/questions/12391786
复制相似问题