Excel 中vab代码执行速度非常慢,不知道哪里需要改进呢
--------------------编程问答--------------------
ScreenUpdating 属性
请参阅 应用于 示例 特性
如果屏幕更新功能是打开的,则该值为 True。Boolean 类型,可读写。
说明
关闭屏幕更新可加快宏的执行速度。这样将看不到宏的执行过程,但宏的执行速度加快了。
当宏结束运行后,请记住将 ScreenUpdating 属性设回到 True。
示例
本示例演示将屏幕更新关闭以后,系统如何加快代码的执行速度。本示例隔列隐藏 Sheet1 上的列,并保存其执行时间。第一次,示例隐藏列时,屏幕更新是打开的;第二次执行时,屏幕更新是关闭的。运行本示例时,可比较信息框中显示的两次执行时间。
Dim elapsedTime(2)
Application.ScreenUpdating = True
For i = 1 To 2
If i = 2 Then Application.ScreenUpdating = False
startTime = Time
Worksheets("Sheet1").Activate
For Each c In ActiveSheet.Columns
If c.Column Mod 2 = 0 Then
c.Hidden = True
End If
Next c
stopTime = Time
elapsedTime(i) = (stopTime - startTime) * 24 * 60 * 60
Next i
Application.ScreenUpdating = True
MsgBox "Elapsed time, screen updating on: " & elapsedTime(1) & _
" sec." & Chr(13) & _
"Elapsed time, screen updating off: " & elapsedTime(2) & _
" sec."
补充:VB , VBA