VBA中Application.EnableEvents=False的应用问题



感觉你对触发事件理解有问题,我语文水平不高,试着解释下,不知你能否看懂: EnableEvents控制的是所有能触发的事件,比如改变单元格内容,改变选择的区域,移动滚动条...等等。我举个现实中用电的例子说明一下,假设你有一个遥控卷闸门,你当按上升或按下降按钮时,这个门就自动上下。再假设还有一个遥控电视,当你按下开关,电视会打开和关闭。这里的按钮就像是所有的触发,门的上下移动和电视的开关相当于你为这个触发编写的事件。而EnableEvents相当于这里的电源总开关,当你把值设为False时,也就是说,当你把总开关打下来时,你的所有线路没电了,不管怎么按遥控,门或电视都没反应的。只有你把值设为True时,也就是把总开关的电打上去时,按遥控才有反应。 解释完触发事件了,我再解释你上面那个程序的意思。上面那个是一个复选框的程序,当你把复选框勾上时(CheckBox1.Value=True)时,显示Sheet2工作表(Sheet2.Visible=True),当你取消复选框时(Else),隐藏Sheet2工作表(Sheet2.Visible=False)。据我的猜测,你看到的这个程序中,应该编写了在显示或隐藏Sheet2工作表时会触发的事件。比如改变当前选择的工作表的触发,或Sheet2显/隐的事件的触发,都会在勾选/取消这个复选框时触发的。所以在开头加入了Application.EnableEvents=False,这个相当于关总开头断电的命令,作用就是在你勾选/取消复选框时不让触发事件启动。当你勾选/取消完复选框后,再加入Application.EnableEvents=True,相当于把总开头打上去恢复通电,作用就是恢复事件的触发,以保证其它触发过程的触发运行。 好了,解释完了,说了很多很长很啰嗦,不知你看懂没有?

上一篇: 下一篇:


相关目录文章: