目录
功能需求
在Excel数据工作表中,指定区域内容发生数据修改时,在A列记录修改类型(增加,修改,删除),然后再J列记录修改时间。
手动输入比较麻烦,希望在A列记录修改类型后,J列中自动记录修改时间。具体功能如下
1)表格A列内容发生增加,修改,删除操作时,在J列记录当前时间。
2)在B列中有数据时,才记录当前时间,防止对空数据行误操作。
3)支持多行同时操作,方面多行同时记录数据。
总的来说,就是指定区域内容发生修改时,在指定列记录当前时间。
函数实现方法
如果只是第一次数据录入时,可以通过函数实现。在J列录入下述函数。
=IF($A1="","",IF($B1<>"",NOW(),""))
上述函数可实现当A列新增内容时,如果B列对应行内容不为空,那么在J列对应行自动记录当前时间。(仅限第一次数据输入时)
但是修改数据时,函数实现不会重新记录修改时间。
VBA实现方法
打算VBA中的工作表事件来实现上述功能。
使用WorkSheet_Change,Worksheet_SelectionChange两个事件来实现上述功能。代码如下