如果A2和Y2之间的任何单元格被更改,我想在单元格Z2中输入今天的日期

时间:2014-08-17 20:16:15

标签: excel excel-vba excel-formula vba

这是用于记录包含数千条记录的电子表格中记录的更改日期。我感谢您的任何建议;我认为没有办法用公式做到这一点,但如果有可能,我更喜欢宏观。

谢谢。

2 个答案:

答案 0 :(得分:2)

虽然您在问题中仅指定了第2行,但是您提到了数千行,因此我假设您希望宏适用于所有行,而不仅仅是第2行。以下内容将向行中的列Z添加日期戳发生了变化的地方。如果同时更改多个单元格,例如使用粘贴或删除操作,它也可以工作。

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

Dim cel As Range

If Not Intersect(Target, [A:Y]) Is Nothing Then
    On Error Resume Next
    Application.EnableEvents = False
    For Each cel In Target
        Range("Z" & cel.Row).Value = Date
    Next cel
    Application.EnableEvents = True
End If

End Sub

要安装,请右键单击工作表标签,单击查看代码,然后将上述内容粘贴到代码窗口中。

答案 1 :(得分:1)

将此添加到您拥有值的工作表代码中:

<强>编辑:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim KeyCells As Range
Set KeyCells = Range("A2:Y2")

If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
Range("Z2").Value = Date
End If

End Sub

这种方式一旦任何细胞在A2和A2之间的范围内。 Y2更改,Z2的值将在今天的日期更新。