我正在尝试让 Excel 在更改另一个单元格时自动插入日期

我正在尝试让 Excel 在更改另一个单元格时自动插入日期

我尝试了以下方法:

=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

相关内容