我尝试了以下方法:
=IF(A1<>"",IF(B1<>"",B1,NOW()),"").
并启用迭代计算。
当我打开电子表格时,它仍会更新到该时间。此表格由多个用户使用,一些用户使用 Excel 2010,其他用户使用 2013。
我也尝试过使用 VBA,但是不起作用。
答案1
如果您要监控的单元格在 A 列,而日期在 B 列,则请按照以下步骤操作:
--
然后在名称处输入任意名称 - 在我的示例中为“DateCell”。选择您希望它生效的工作表 - 在我的示例中为 Sheet1。在引用处输入以下公式:
=IF(A1:A<>"",IF(B1:B="",Now(),B1:B),"")
完成此操作后,右键单击工作表选项卡,然后单击查看代码,然后粘贴以下 vba 代码(工作表更改事件,如 cybernetic.nomad 所建议)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A:A")) Is Nothing Then
Application.EnableEvents = False
Dim DateCell As Range
Set DateCell = Target.Offset(0, 1)
If DateCell.Value = "" Then
DateCell.Value = Date
Else
DateCell.Value = Date
End If
Application.EnableEvents = True
End If
End Sub