|
Application.enableevents=False/True 事件的激活与关闭 防止程序死循环
例如:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.Offset(0, 1).Select
End Sub
改变选择时激活SelectionChange事件,执行Target.Offset(0, 1).Select 此时select又改变了 又激活SelectionChange 再次执行Target.Offset(0, 1).Select ........如此死循环
若是加了事件的开启关闭,如下,改变选择时激活SelectionChange事件,先关闭事件响应,不会触发任何事件,执行Target.Offset(0, 1).Select (或目标程序)以后 在开启事件响应,以便其他事件正常响应。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
Target.Offset(0, 1).Select
Application.EnableEvents = True
End Sub
If Target.Address = "$D$3" Then ActiveWorkbook.RefreshAll
在这个事件里因为有if来判断执行的条件,不用Application.enableevents=False/True也可以,以上是我的理解。 |
|