excel - 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 标志都快速连续显示,所以我知道它与事件初始化有些奇怪。
我知道这有点像“瞄准目标被蒙住眼睛”的要求,我很抱歉。
解决方案
推荐阅读
- jquery - 单击事件不会在第一次单击时触发,但每次都会触发
- scala - 为什么 Doobie 使用免费的 monad?
- php - 如何为两个不同的控制器使用一个索引功能?
- python - 如何将二进制 dat 文件 (.dat) 保存为 png 或 jpg 格式?
- ios - 如何让 iOS 12 自动填充要求在 React Native 应用程序中保存密码?
- javascript - 如何从具有附加的 li 元素中获取对象参数
- oracle - LDAP:错误代码 1 - 目录服务器找不到绑定 dn“”的网络组
- javascript - 如何用国家名称重写 URL 以及在国家名称之后带有 / 的所有链接
- sql - SSIS - 从表中读取选择
- python - 如何在ubuntu下启动odoo 11?