当前位置:网志问答 > VBA中Application.EnableEvents = False的应用问题
已有回答

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

PrivateSubCheckBox1_Click()Application.EnableEvents=FalseIfCheckBox1.Value=TrueThenSheet2.Visible=TrueElseSheet2.Visible=FalseEndIfApplication.EnableEvents=TrueEndSub本人小白,在看别人的VBA时,发现了这个,然后这是我知道的——Application.EnableEvents的作用是控制事件的触发当Application.EnableEvents=False时,禁止触发事件当Application.EnableEvents=True时,可以正常触发事件这是我在网上查找的解释,但是放在上面我就不能理解了,False是禁止触发事件吧,这个禁止的事件是指上面哪部分的,为什么网上说要是把"Application.EnableEvents=True",这个去掉的话就会自动触发事件(类似于不会停止?)我看了网上对这个=False和=True的解释之后,感觉禁止触发事件和正常触发事件不应该调换下位置吗?网志问答在6天前收到腾讯网的热心用户匿名网友关于VBA中Application.EnableEvents = False的应用问题的提问,关于这些疑难问题,进行了深入的分析。得到了网志问答众多网友的支持,得到了如下解决方案,摘录了部分优质回答,如对此有任何好的意见,欢迎大家进行探讨共同解决!

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

本页链接:http://www.oxrm.com/question/1589792319613893

AD728-90
满意答案

第1个优秀答案:

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


希望以上的回答,能够帮助你。如果你还没有在此找到或解决关于“VBA中Application.EnableEvents = False的应用问题”的问题的方法,可以用百度搜狗以及360搜索等搜索引擎来搜索相关更多的内容,也可以在百度知道、搜狗问问、360问答、微博、微信、网志问答等来提问,让更多的网友共同来帮助你解决“VBA中Application.EnableEvents = False的应用问题”的回答。大众新闻网http://www.dzxww.com/
AD160-600