ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 17376|回复: 9

[求助] vba 改变单元格的值触发的事件

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-5-26 09:52 | 显示全部楼层 |阅读模式
请问:改变单元格的值后会不会触发selectionchange事件或者是change事件
还是2个事件一起触发,如果2个事件一起触发的话那么哪个先哪个后?

TA的精华主题

TA的得分主题

发表于 2015-5-26 09:56 | 显示全部楼层
建议楼主自己写个测试程序
可以用msgbox弹出窗口提示

TA的精华主题

TA的得分主题

发表于 2015-5-26 10:18 | 显示全部楼层
百问不如一试,试是很好的办法

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-5-26 14:34 | 显示全部楼层
问之前试过几次了,答案还是不确定,所以我问下

TA的精华主题

TA的得分主题

发表于 2015-5-26 17:51 | 显示全部楼层
还是看看书,建立基本概念后,方能指导编程的思路

你所谈到的两个事件,是工作表事件。
事件是分层次:
应用程序层次---比如Application_New WorkBook。这个层次的程序代码,在EH中不太多
工作薄层次---比如Wrkbook_Open,这个层次的程序代码在EH中比较多
工作表层次---比如你说到的,这在VBA板块中很多
图表层次---比如Chart_Activate,在VBA板块中并不多

Sub Worksheet_Change(ByVal Target As Range)
更改单元格的值,将触发这个事件。所谓更改指输入、编辑、删除、粘贴。而重新计算不属于此范围,因而不会引起这个事件。Target是被更改的单元格。
【注意】在Target更改时,Application.EnableEvents=False可以阻止调用自己。也就是防止循环调用
Sub Worksheet_SelectionChange(ByVal Target As Range)
选中区域,触发。是选中新的区域,而不是重复选取区域。Target指选定的区域

接下来,就是实验

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-5-26 23:14 | 显示全部楼层
谢谢你的回答?可是我实际操作的时候在CHANGE事件里双击单元格会触发
在SELECTIONCHANGE事件里双击单元格也会触发不知道哪里我理解错了?

TA的精华主题

TA的得分主题

发表于 2021-5-1 11:22 来自手机 | 显示全部楼层
yiyiyicz 发表于 2015-5-26 17:51
还是看看书,建立基本概念后,方能指导编程的思路

你所谈到的两个事件,是工作表事件。

如果我想重复选中触发怎么处理?

TA的精华主题

TA的得分主题

发表于 2021-5-1 20:00 | 显示全部楼层
本帖最后由 cjjhpc 于 2021-5-1 20:03 编辑

Change事件需要双击单元格进入编辑状态或者单元格的值发生改变才会触发Selection_Change事件只要单击单元格就会触发,如果你说的两者冲突的话,那么很可能是先触发了Selection_Change事件,然后这个事件又触发了Change事件

TA的精华主题

TA的得分主题

发表于 2024-1-24 08:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yiyiyicz 发表于 2015-5-26 17:51
还是看看书,建立基本概念后,方能指导编程的思路

你所谈到的两个事件,是工作表事件。

如果是想某单元格重新计算触发事件,怎么写?谢谢!

TA的精华主题

TA的得分主题

发表于 2024-2-12 21:07 | 显示全部楼层
本帖最后由 yiyiyicz 于 2024-2-12 21:09 编辑

好久不用VBA,很多记不清了
注意不能出现循环触发,那肯定失败了。解决:第一思路要清楚,怎么设计解决问题的逻辑。这很重要。看再多的书,脑子里没有一个大致方向。那就费劲了;有一本微软出的VB6编程指导,很厚,中文译本。多处给出了实例,解决循环触发
最后,祝春节快乐!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-30 06:36 , Processed in 0.039699 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表