ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 自动生成的值无法触发Change()事件怎么办?

自动生成的值无法触发Change()事件怎么办?

作者:绿色风 分类: 时间:2022-08-17 浏览:90
楼主
zzmxy
Q: 某一列的值是用公式自动生成的,但是,下面的代码好像只有手动输入到单元格里才会执行,而自动生成的值不能执行此程序,应该怎么办?

  1. Public Sub Worksheet_Change(ByVal Target As Range)
  2.     If Target.Column = 8 Then
  3.         Target.Offset(0, 2) = Format(Time, "yyyy-mm-dd hh:mm:ss")
  4.     End If
  5. End Sub



A: 由公式自动生成的值,变化的时候,其实就用到了Excel的“重算”功能,也就是事件响应里的Calculate,
   所以只要在Calculate事件里也加入相应的代码即可,不过这时候就没有“Target”这个变量,这就要根据实际要求作相应的改动,如果是RAND()等生成的,那方法有限。

   另外一种情况,就是公式是通过引用其他单元格来得到的,如果是这样的话,那比较简单,就是将Change事件里判断的Target改为公式里引用的源单元格即可
2楼
水星钓鱼
Change事件只能相应用户操作导致的改变。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap