前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel事件(四)事件顺序

Excel事件(四)事件顺序

作者头像
无言之月
发布2019-10-13 16:16:28
2.3K0
发布2019-10-13 16:16:28
举报
文章被收录于专栏:Excel和Access学习笔记

大家好,本节主要介绍事件的发生顺序,事件的关闭与开启的使用情境。

对于Excel事件的五种类别,已经分别介绍了工作表事件工作簿事件。而不与对象相关的事件(即ontime方法onkey方法)也在application主程序对象方法介绍过。(可通过蓝字链接查看。)

窗体和控件事件会在后面“窗体设计“的章节再具体介绍。图表事件如果后期介绍“控制图表"的内容再介绍。

事件的发生顺序

首先要介绍的一些常见事件的发生顺序,工作簿和工作表对象都对应很多事件。了解事件的产生顺序有助于理顺对事件的使用。

工作簿事件顺序

操作工作簿时常用的事件产生顺序如下:

1、workbook_open事件:打开工作簿时产生该事件

2、workbook_activate事件:打开工作簿时产生该事件。如果有多个工作簿,则切换工作簿时也将产生该事件

3、workbook_beforesave事件:保存工作簿之前产生该事件

4、workbook_beforeclose事件:关闭工作簿之前产生该事件

5、workbook_deactivate事件:关闭工作簿时,在beforeclose事件之后产生该事件,如果有多个工作簿,在切换工作簿时,非激活状态的工作簿将产生该事件。

工作表事件顺序

工作表的事件不多,但操作工作表时也可能触发一些工作簿事件,下面会列出一些常用工作表事件的产生顺序

第一种情况:当修改单元格中的内容后,再改变活动单元格时事件的产生顺序如下:

worksheet_change事件

workbook_sheetchange事件

worksheet_selectionchange事件

第二种情况:更改当前工作表时,事件的产生顺序如下:

worksheet_deactivate事件

workbook_sheetdeactivate事件

worksheet_activate事件

workbook_sheetactivate事件

事件的关闭与开启

顺带再说一下事件的关闭和开启问题,主要是用于防止运行的代码二次触发事件,形式如下:

Application.EnableEvents = False

代码

Application.EnableEvents = True

在change事件很常见,目的就是防止过程中的代码在修改单元格的值时第二次触发事件,导致无限循环。

下面先演示一个错误示例(无法停止,只能关闭excel文件。请勿模仿)。

在相应的工作表中,当用户更改了单元格的内容时,会第一次触发worksheet_change事件。

代码执行将单元格的值改为“内容已经更改”和弹窗。由于代码更改了单元格的内容。第二次触发了worksheet_change事件。单元格的值会再次更改和弹窗。(值虽然都是“内容已更改“,但可以触发了chang事件),导致形成循环。

所以正确使用方法,就是用户更改单元格触发worksheet_change事件时,在代码中把事件触发关闭。然后运行修改代码后,再恢复事件的触发。代码就正常的运行。


本节主要介绍事件的产生顺序,在涉及多个事件使用时注意下顺序即可,然后了解下事件的关闭和开启的使用情境。

后面两节会介绍几个Excel事件的综合示例,会串联一些以前介绍过的内容。祝大家学习快乐。


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel和Access学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档