慢速Workbook_Open事件

时间:2015-11-16 03:47:28

标签: excel vba excel-vba micro-optimization

由于在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秒。

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

尝试:

With Sheets("Orders")
    For b = 5 To 268
        .Range("C" & b).Resize(1, 3).Locked = (.Range("F" & b) = "Locked") 
    Next
End With