excel - 为什么 Worksheet_Change 仅在开发人员模式下触发?
问题描述
我有奇怪的错误,我似乎无法解决它,我有以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox "change"
End Sub
每次更改单元格时,这都会在我的工作表上触发,但是在我单击返回开发人员模式之前不会出现 msgbox,然后它会触发。仅当我单击开发人员模式时,它才会触发我在工作表上进行更改的 x 次。
我在一张新纸上试了一下,效果很好。有什么东西会阻止细胞功能的改变正常工作吗?我不明白为什么在我进入开发人员页面之前它不会运行。据我了解,Appliation.EnableEvents 设置为 True。
澄清一下:此功能仅在我单击开发人员模式时运行。感觉就像它排队,然后在我进入开发者模式后触发。
解决方案
右键单击您的工作表并粘贴以下代码示例。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A1:C10")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Display a message when one of the designated cells has been
' changed.
' Place your code here.
MsgBox "Cell " & Target.Address & " has changed."
End If
End Sub
请记住,这是工作表代码,而不是模块代码。
推荐阅读
- python - 添加两个参数会导致 NoReverseMatch
- javascript - 引用我希望从服务器接收的数据
- amazon-web-services - VPCa 中的 Tableau 服务器从 vpcB 中的 RDS 中提取数据
- javascript - Azure 语音服务 (Javascript) startContinuousRecognitionAsync() 中 RecognitionMode 参数的含义
- postgresql - autovacuum (VACUUM) 是这个 PostgreSQL UPDATE 查询偶尔需要几个小时才能完成运行的原因吗?
- python - 使用 python Web Scraper 提取 n 个图像
- webpack - AWS Lambda - Runtime.ImportModuleError:错误:找不到模块“../package.json”
- mysql - Mysql 查询不起作用,尤其是 Scan() 方法
- python - Errno 24 在 Python 中进行多处理时打开的文件过多
- python - dask 分布式异常报告进度条