作者:绿色风
分类:
时间:2022-08-17
浏览:138
楼主 zzmxy |
Q: 某一列的值是用公式自动生成的,但是,下面的代码好像只有手动输入到单元格里才会执行,而自动生成的值不能执行此程序,应该怎么办?
- Public Sub Worksheet_Change(ByVal Target As Range)
- If Target.Column = 8 Then
- Target.Offset(0, 2) = Format(Time, "yyyy-mm-dd hh:mm:ss")
- End If
- 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总版主之一