指定单元格里面内容每修改一次另一指定单元格里面的时间自动变为修改时的时间.如图当I列内容发生修改时在R列显示最后修改时间,现在这个公式只能显示第一次填写时间
这个需求如果要用公式而不是宏来实现,关键在于两点:
需要记录下I列单元格修改前的数据,这个只能放在R列本身,因为如果用其他单元格保存,在I列变化时,那个单元格也同时变化了;
需要对自身进行判断,也就是迭代计算。
2可以通过设置迭代(次数1)来设置,那么,R3的公式就是:
=IF(I3="","",IF(ISERR(FIND("|",R3)),TEXT(NOW(),"yyyy-mm-dd hh:mm:ss")&"|"&I3,IF(--MID(R3,FIND("|",R3)+1,10)=I3,R3,TEXT(NOW(),"yyyy-mm-dd hh:mm:ss")&"|"&I3)))
效果如图,附件可下载参考
温馨提示:答案为网友推荐,仅供参考
第1个回答 2021-02-09
在工作簿VBA的Thisworkbook中写如下代码:
Dim x
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub '"2"指第2列输入数据
If Target.Row = 1 Then Exit Sub
If Target.Value = "" Then
Target.Offset(0, 4).Value = "" '"4"指在输入数据的单元格后第四列单元格里显示现在的时间
Exit Sub
End If
If Target.Value = x Then Exit Sub
If Target.Count > 1 Then Exit Sub
Target.Offset(0, 4) = Now
End Sub
Dim x
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub '"2"指第2列输入数据
If Target.Row = 1 Then Exit Sub
If Target.Value = "" Then
Target.Offset(0, 4).Value = "" '"4"指在输入数据的单元格后第四列单元格里显示现在的时间
Exit Sub
End If
If Target.Value = x Then Exit Sub
If Target.Count > 1 Then Exit Sub
Target.Offset(0, 4) = Now
End Sub
第2个回答 2017-02-05
这个只能用宏或自定义函数来实现。追问
If Target.Column = 9 Then Target.Offset(0, 9).Value = Now
End Sub
可以具体点吗,我试了好多都不行
追答Private Sub Worksheet_Change(ByVal Target As Range)If Target.Column = 9 Then Target.Offset(0, 9).Value = Now
End Sub
方法:
选定工作表》ALT+F11,粘贴这段代码,启用宏就可以了。
追问这个我昨天试了 没整出来 不知道是不是我方法不对,有直接的函数可以用的吗
追答函数也得自定义,用EXCEL固有函数是不行的。
这个没问题,有亲测。
我需要的是日期加时间 这个出来好像只有日期
追答不会,我用的是NOW,返回的是时间,将单元格的格式重新设置一下就OK了