问:当用户修改工作表中指定单元格的内容时,我想在另一张工作表中记录修改时间。例如,在工作表Sheet1的单元格B2中,每次用户将单元格值修改为大于0的值时,修改时间都会记录在工作表LogB2中。
具体来说,如果用户在2019年10月24日19: 30: 30将单元格B2中的值更改为280,则在工作表LogB2中记录2019-10-24 19336030336030的时间;如果单元格B2中的值在2019年10月25日8: 10: 15更改为100,则工作表日志B2中将添加2019-10-25 8:10336015的时间记录。
答:这可以使用工作表事件来完成。
打开VBE,双击工作表Sheet1对象模块,输入代码:
私有子工作表_更改(按值目标作为范围)
调暗输入范围
调暗范围
要记录其修改时间的单元格。
设置输入=范围(“B2”)
确保单元格是目标单元格。
如果相交(输入,目标。单元格(1,1))为空,然后退出Sub
不记录修改为小于0的值。
如果rngInput。值=0,然后退出Sub
记录单元格修改为工作表日志B2的时间。
带工作表(“日志2”)
工作表的最后一行。
设置rngLog=。单元格(. Rows.Count,1)。结束(xlUp)
确保工作表中最后一行单元格包含值。
If Len(rngLog。值)0然后
移动到下面相邻的空白单元格。
设置rngLog=rngLog。偏移量(1,0)
如果…就会结束
以…结尾
写下当前时间。
rngLog。价值=现在
末端接头
问:我想记录另一个单元格的修改时间。例如,每当单元格D2的修改值大于0时,修改时间将记录在工作表LogD2中。怎么写代码?
答:也可以使用工作表事件来完成。
打开VBE,双击工作表Sheet1对象模块,输入代码:
私有子工作表_更改(按值目标作为范围)
调暗范围
将工作区设为工作表
根据修改后的单元格。
分配相应的工作表。
选择案例目标。细胞(1,1)。地址
案例“$B$2”
设置工作单=工作表(“日志2”)
案例“2美元”
设置工作单=工作表(“日志2”)
其他情况
出口接头
结束选择
如果修改值小于0,将不会记录修改时间。
如果目标。细胞(1,1)。值=0新接口
用wksLog
工作表数据的最后一行。
设置rngLog=。单元格(. Rows.Count,1)。结束(xlUp)
如果最后一个数据单元格包含值。
If Len(rngLog。值)0然后
偏移到下面的相邻单元格。
设置rngLog=rngLog。偏移量(1,0)
如果…就会结束
以…结尾
写下当前时间。
rngLog。价值=现在
末端接头