打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA--事件过程

点击上方

蓝色

文字  关注我们吧!

送人玫瑰,手有余香,请将文章分享给更多朋友

动手操作是熟练掌握EXCEL的最快捷途径!



在VBA中,当执行“打开工作簿”、“选择工作表”、“改变单元格的内容”等操作时,可以由此为触发条件(事件)自动执行某些过程。把由这些特定的操作触发并且自动被执行的过程,叫做事件过程。

事件过程是编写在触发事件的工作簿或工作表等对象的模块当中的。下面就是一个简单的事件过程。



当事件被执行后就自动运行宏。




01

制作事件过程

事件过程是针对触发事件的工作簿或工作表的,是编写在这些事件对象的模块当中的。例如,针对工作簿事件的事件过程编写在“ThisWorkbook模块”中。

事件过程是在作为事件对象的对象模块的代码窗口内进行编写的。事件过程名是在对象名和事件名中用“_(半角下划线)”连接起来按照“对象名_事件名”命名的,用户不能自由命名。

事件过程的语法:

Private Sub 对象名_事件名(参数)

    事件发生的时候采取的操作

End Sub

下面制作一个工作表显示时候执行的宏作为例子

  • 双击“ThisWorkbook”选项



  • 自动生成“ThisWorkbook_Open”的事件过程。如果不需要,也可以将它删除,在过程框中选择事件,生成选择的事件过程。



  • 编写事件发生时候执行的代码



执行效果如下:




02

事件的种类

作为对象的事件有很多种,例如打开工作簿的时候发生的Open事件,选择工作表时发生的Active事件等。理解事件的种类在“这个时候想做这样的事情”时可以知道选择哪个事件比较合适。



下面简单介绍一下事件过程参数的使用方法。

在事件过程中有参数,例如在Workbook_SHeetActive事件过程中,有保存当前激活工作表的参数“Sh”。

Worksheet_Change事件过程

Worksheet_Change事件过程是单元格的内容被更改的时候调用的事件过程。这个事件过程有一个“Target”参数。“Target”中保存了内容发生变化的所有单元格。也就是可以在该过程中编写针对Target中存放的所有单元格的处理代码。




03

使事件过程不发生的操作

事件不仅在用户操作的时候发生,在执行过程代码时也会发生,因此在过程内发生的事件有时候也会产生不希望的结果。这种时候可以临时取消过程运行时事件的发生,以及取消不必要的事件发生。为了取消事件的发生,设定Application对象的EnableEvents属性为False。如果在过程执行前设定了EnableEvents属性,那么可以阻止在过程运行中触发其它事件过程。

阻止事件发生的语法:

Application.EnableEvents=False

使用“Application.EnableEvents=False”取消事件的发生,以后所有的事件都被阻止,那么事件过程功能就被取消了。因此在临时取消事件发生的时候,必须在后面使用“Application.EnableEvents=True”来解除取消事件发生。



-END-

长按下方二维码关注EXCEL应用之家

面对EXCEL操作问题时不再迷茫无助

推荐阅读:

人到中年,怎样才能保卫我们的发际线?

VAB的基础知识--使用VBA制作宏

什么是宏

总结篇--提取不重复值的技巧集合

总结篇--动态缩放图表

戳原文,更有料!免费模板文档!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Excel编程周末速成班第22课:使用事件
【VBA初学者教程】- 第一章 VBA入门知识:使用Excel对象的事件
跟烟花入门VBA之56:工作表对象Worksheet(十一)
vba事件程序
Excel-VBA:13、Excel事件程序
使用VBA代码完成限制重复值的录入,及求当月最后一天日期的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服