|
最近在看《别怕,Excel VBA其实很简单》。在第132页操作过程中出现过一个问题。
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal target As Range)
target.Value = target.Address
Application.EnableEvents = False ‘代码①
Application.EnableEvents = True ‘代码②
End Sub
此代码的作用是:将选中的单元格地址写入单元格。
代码①和代码②同时存在的时候,事件发生正常。
我想查看代码①和代码②在事件发生时具体的区别。就尝试先Rem 代码②。
发生的情况是事件执行了一次之后不再执行。(因为执行了代码①,所以此现象正常。)
但是,把代码②前的Rem注释标识去掉后,再点击单元格,无任何事件发生。代码不启任何作用了。
我在论坛没有找到发生这一现象的原因,不过找到了解决这个情况的方法。
解决方法:在立即窗口执行代码 Application.EnableEvents = True,然后重新再点击单元格的时候,事件发生正常了。
我希望:
1. 碰到同样问题的读者可以知道解决方案。
2. 知道其中原委的高手帮忙解释一下原因。
非常感谢!
|
|