由于在workbook_open事件中运行了许多宏,我有一个工作簿打开时间超过6秒。
我想加快速度,所以我使用计时器在启动时测试代码的不同部分,而在工作簿打开时运行。除了这部分外,所有部分都需要在两种情况下运行相同的时间:
Dim ATime As Double
Dim BTime As Double
ATime = timer
Dim b As Long
For b = 5 To 268
If Sheets("Orders").Range("F" & b) = "Locked" Then
Sheets("Orders").Range("C" & b).Locked = True
Sheets("Orders").Range("D" & b).Locked = True
Sheets("Orders").Range("E" & b).Locked = True
End If
Next
BTime = timer
MsgBox "1. " & Format(BTime - ATime, "0.00 \s\ec")
在workbook_open运行时:2.78秒。在工作簿中手动运行:0.01秒。
这里有什么问题?
答案 0 :(得分:0)
尝试:
With Sheets("Orders")
For b = 5 To 268
.Range("C" & b).Resize(1, 3).Locked = (.Range("F" & b) = "Locked")
Next
End With