首页 > 解决方案 > Excel VBA Worksheet_Change 先慢后快

问题描述

所以我有一个非常奇怪的问题,当第一次初始化我的 Worksheet_Change 事件时,在事件“触发”之前大约有 2 秒的暂停。在初始时间之后,事件变得更快。以前有人有过这种经历吗?

下面的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "Firing"
    Debug.Print "1"
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    Debug.Print "2"
    If Sheets("Drop Downs").Cells(6, 2) = "1" Then
        If Not Application.Intersect(Target, Range(Target.Address)) Is Nothing Then
            Debug.Print "3"
            Call SummarySheetUpdater
            Debug.Print "4"
        End If
    End If
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Application.EnableEvents = True
End Sub

第一次运行时,msgbox 在大约 2 秒后出现,之后它几乎立即出现。

此外,我放置在 sub 中的 Debug.Print 标志都快速连续显示,所以我知道它与事件初始化有些奇怪。

我知道这有点像“瞄准目标被蒙住眼睛”的要求,我很抱歉。

标签: excelvba

解决方案


推荐阅读