乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何在<em>excel</em>中自动生成数据录入时间?

如何在<em>excel</em>中自动生成数据录入时间?

作者:乔山办公网日期:

返回目录:excel表格制作


右键SHEET1
复制下列代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
Target.Offset(0, 1) = Date
End If
End Sub

注意:在VBA代码中,Date、Now、Time分别表示系统日期、日期及时间.
If Target.Column = 7 Then 表示: 在第7列输入后,第8列自动出现日期,根据实际情况修改即可。

本人2010版excel,假设表格是这样的,首先将B列设置单元格格式,看自己需求,选中B列,右键,设置单元格格式,数字选项卡,自定义,yyyy/mm/dd hh:mm:ss

方法一:数据有效性

       在C1单元格写公式=NOW(),C1计算出来的格式不用管,选中B列,数据-数据有效性-序列-来源(用鼠标点一下C1,或者直接输入C1)。这样在A列填写数据结束后,对应的B列单元格的时间通过下拉箭头选则时间。

方法二:迭代计算+函数

       首先设置启用迭代计算,见下图,计算次数默认是100,随便设置,次数少了 计算快。

然后在B列用公式,B2公式=IF(A2="","",IF(B2="",NOW(),B2)),下拉填充,这样,在A列输入数据后,B列会自动填充当前时间,而且同样不会变化。


    


  1. 没有这样的公式;

  2. excle中能自动获取日期的公式,就是当前日期,而且公式一旦输入任何时候它都是再获取当前日期;

  3. 所以,除非你手动输入固定日期,否则用公式法是无法实现你需要的功能zhidao,除非你使用VBA编程代码实现。



公式基本上对的,但你没注意到一个基本的问题,公式在A2单元格,公式中又有“A2”,即引用了单元格本身,在Excel中这就叫做循环引用。循环引用就是指引用单元格本身,有直接引用,你这个公式就是;还有间接引用,如B2引用A2,A2再引用B2,或B2引用A2,C2引用B2,A2再引用C2,等就是间接循环引用。Excel中一般要避免循环引用,但本问题却正是要利用循环引用——在A2取得也日期后,就引用本身不再变化。

要使循环引用能正确得到结果,必须在选项的公式选项卡中,把“启用迭代计算”打上对勾。这是关键。

另外你的公式,第2个IF最好还加上一个条件,因为公式在原始状态,有可能A2在空白时作为0看待。即公式修改为:

=IF(A1="","",IF(OR(A2="",A2=0),NOW(),A2))

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网