上一期VBA入门知识为大家介绍的是如何在Visual Basic中使用Excel工作表函数,各位小伙伴都学会了吗?刚好前两天SUT学习交流群中有位小伙伴咨询了一个问题,该问题的解决方法也有小伙伴解决了,截图如下: 东阳这位小伙伴给出的代码如下:
代码演示如下,详见如下动态图(右键鼠标可以清空单元格内容): 上面的一段代码就用到了几个常用的事件,其实还有其他更多的事件。事件大体可以分为两类,一类是工作簿事件,另一类是工作表事件。 工作簿事件:当工作簿更改、工作簿中的任何工作表更改、加载宏更改或数据透视表更改时,将引发工作簿事件。工作簿上的事件在默认情况下是可用的。工作簿对象事件一览表如下图所示: 工作表事件:当工作表激活、工作表中的任何单元格更改、数据透视表更改时,将引发工作表事件。工作表上的事件在默认情况下是可用的。工作表对象事件一览表如下图所示: 这么多事件,难道都需要记住每个事件的名称和用法吗?当然不用,名称和参数都可以使用Excel的VBE自动生成,具体操作如下: 工作表、图表工作表和工作簿事件处理过程对任意打开的工作表或工作簿都有效。如果要为嵌入式图表、查询表或 Application 对象编写事件处理过程,则必须在类模块中用 WithEvents 关键字创建新的对象。 可用 EnableEvents 属性激活或禁用事件。例如,使用 Save 方法保存工作表时,将引发 BeforeSave 事件。可在调用 Save 方法之前将 EnableEvents 属性设置为False,以防止该事件的引发。具体代码如下:
代码演示如下动态图所示: 还记得文章开头那位小伙伴写的代码里面就用到了这个 EnableEvents 属性来禁用工作表Change事件。等单元格值从新计算后,再启用该事件。如果不这么做,更改完单元格A1的值后,代码将进入死循环,表现出来的就是你的Excel工作簿处于假死状态~感兴趣的可以试试,测试之前请保存好Excel文档!!! |
|
来自: L罗乐 > 《VBA基础入门教程》