自动记录数据录入时间不懂得VBA的朋友可以看看

时间:2016-03-21   作者:snow   来源:互联网

在日常工作中,经常会遇到需要实时记录数据录入的时间问题。

有朋友会说了,用快捷键啊,按Ctrl+;(分号)可以返回当前的系统日期,按Ctrl+Shift+;(分号)可以返回当前的系统时间。

但是如果需要同时返回日期和时间又该怎么处理呢?

对于懂得VBA的朋友,这个问题当然不在话下,但相对于V盲的表亲来说,处理这个问题就有点棘手了。

以下图为例,在A列单元格输入或是修改内容后,B列就会自动的显示出数据录入、更改时的时间。

接下来,咱们就一起学习一下如何实现这样的目的。

B2单元格输入以下公式,向下复制。

=IF(A2="","",IF(A2=CELL("contents"),NOW(),B2))

先简单说一下公式的意思。

NOW()函数返回日期时间格式的当前日期和时间。

先用IF函数判断A2是否为空值,如果A2是空值返回空文本"",否则执行下一段公式:

IF(A2=CELL("contents"),NOW(),B2)

公式中CELL("contents")部分,可以获取最后编辑的单元格内容。

再用IF函数判断,如果A2等于最后编辑的单元格内容,公式返回当前的系统日期时间,否则仍然等于B2原有的值不变。

输入公式后,如果马上在A2单元格输入内容,会弹出循环引用的警告:

先关闭警告对话框。

然后依次单击【文件】→【选项】,在【Excel选项】对话框里单击【公式】选项卡,勾选“启用迭代计算”。

设置完毕,只要在A列输入内容或是对已有的数据进行更改,B列就会记录下数据录入时的时间。

如果您的工作表中显示的是类似41672.55这样的怪怪的数字,记得设置一下单元格格式。

按Ctrl+1,在弹出的【设置单元格格式】对话框中单击【自定义】选项,在类型文本框中输入以下格式代码:

yyyy-m-d h:mm:ss

如果A列录入的数据有重复,使用以上公式就会出现问题了,想一想应该怎么处理呢

发表评论