【问题标题】:Automatically adding the date/time to a cell when another cell is updated更新另一个单元格时自动将日期/时间添加到一个单元格
【发布时间】:2021-10-16 07:02:09
【问题描述】:

我需要编辑以下代码以查看整个 D 列,如果选择“是”,则将日期放在 E 列旁边。但是我无法工作。

Sub Worksheet_Change(ByVal Target As Range)

 If Not Intersect(Target, Range("D:D")) Is Nothing Then
    Target.Offset(0, 1) = Now
 End If

End Sub```

【问题讨论】:

  • 代码对我有用。请记住,它必须在工作表的代码模块中。如果它在标准代码模块中,它将无法工作。除此之外,“D:D”的范围似乎有点大,有 140 万个单元格。但是,如果您真的想要如此全面,那么If Target.Column = 4 Then Target.Offset.Value = Now() 将同样有效。
  • 如果 D 列中是 Yes,你知道我应该怎么做才能让它只返回日期吗?
  • 对不起!那应该是(必须是!)If Target.Column = 4 Then Target.Offset(0,1).Value = Now()

标签: excel vba date


【解决方案1】:

在下面的代码中,要求是 Target 的列为“D”,其值为“yes”。

Sub Worksheet_Change(ByVal Target As Range)

    With Target
        If (.Column = 4) And (StrComp(.Value, "yes", vbTextCompare) = 0) Then
           .Offset(0, 1).Value = Now()
        End If
    End With
End Sub

vbTextCompare 比较值与“yes”不区分大小写,意味着“yes”、“YES”或“Yes”都将被视为匹配。如果您想坚持区分大小写比较,请指定vbBinaryCompare

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多