源作者:Excel数据探索
如何禁止程序运行关注后回复“资料”,即可免费获取Excel相关学习和实战资料。如果你也对数据分析感兴趣,并且想在这方面有所发展,无论是方法还是技术,例如Excel、VBA、SQL、Python,特别是Excel相关,欢迎与我交流。如果有这方面的问题或者困惑,也欢迎与我探讨。
前文有提到,如果你想让自己编写的Excel VBA 用起来更舒适,就需要思考一些用户体验,比如说优化程序提高程序运行效率,让使用者需要等待的时间更短,例如禁用屏幕更新可以加快代码的速度。
通过在代码中给Application.ScreenUpdating赋值,可以设置是否禁用屏幕更新,ScreenUpdating的默认值一般为True,也就是开启了屏幕更新,如果想要禁用屏幕更新,需要设置为False,等程序运行完毕再将其设置为True。
下面进行测试,依次选中单元格A1到A1000,然后填充单元格所在的行数。此处可以使用上文提到的Timer函数计算程序运行的时间。
Sub 不关闭屏幕更新填充数值()
'记录开始时间
Start = Timer
'填充数值
For i = 1 To 1000
Range("A" & i).Select
ActiveCell.FormulaR1C1 = i
Next
'记录结束时间
Finish = Timer
'计算使用时间
TotalTime = Finish - Start
'显示使用时间
MsgBox "使用时间:" & TotalTime & " 秒"
End Sub
Sub 关闭屏幕更新填充数值()
'关闭屏幕更新
Application.ScreenUpdating = False
'记录开始时间
Start = Timer
'填充数值
For i = 1 To 1000
Range("A" & i).Select
ActiveCell.FormulaR1C1 = i
Next
'记录结束时间
Finish = Timer
'计算使用时间
TotalTime = Finish - Start
'显示使用时间
MsgBox "使用时间:" & TotalTime & " 秒"
'开启屏幕更新
Application.ScreenUpdating = True
End Sub
不关闭屏幕更新填充数值使用了2.539063秒,关闭屏幕更新填充数值使用了0.1875秒。
怎么禁止一个程序运行
推荐阅读:
VBA 代码繁杂,如何一招化繁为简
Excel VBA 算一算你编写的代码需要运行多久
Excel VBA,说一说录制宏