返回目录: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列会自动填充当前时间,而且同样不会变化。
没有这样的公来式;
excle中能自动获取日期的公式,就是当前日期,而且公式一旦输入任何时候它都是再获取当前日期;自
所以,除非你手动输入固定日期,否则用公式法是无法实现你需要的功能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))