Excel 中的时间戳...不起作用?

Excel 中的时间戳...不起作用?

我知道这个问题已经被问过很多次了,我确实搜索过并尝试用给出的解决方案来解决这个问题,但无济于事。也许我做错了什么,但我对 VBA 了解不多,所以我不知道到底哪里出了问题。基本上,我在 E 列中输入了一些值,我希望一旦 E 中的相应值被修改,G 列中的时间戳就会自动更新。

我使用了该网站的以下代码http://www.mcgimpsey.com/excel/timestamp.html

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        With Target
            If .Count > 1 Then Exit Sub
            If Not Intersect(Range("A2:A10"), .Cells) Is Nothing Then
                Application.EnableEvents = False
                If IsEmpty(.Value) Then
                    .Offset(0, 1).ClearContents
                Else
                    With .Offset(0, 1)
                        .NumberFormat = "dd mmm yyyy hh:mm:ss"
                        .Value = Now
                    End With
                End If
                Application.EnableEvents = True
            End If
        End With
    End Sub

我试图修改它以适合我的查询,但是当我在 G 列中输入一个值时,E 列中没有任何内容出现。有人能解释一下我该如何做吗?

谢谢

答案1

您的代码监视 A 列、单元格 A2 到 A10,而不是 E 列。它将偏移量为 1 的时间戳放入 B 列中的相应单元格中。

如果要监视 E 列并在 G 列中输入时间戳,则将代码更改为

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        With Target
            If .Count > 1 Then Exit Sub
            If Not Intersect(Range("E:E"), .Cells) Is Nothing Then
                Application.EnableEvents = False
                If IsEmpty(.Value) Then
                    .Offset(0, 2).ClearContents
                Else
                    With .Offset(0, 2)
                        .NumberFormat = "dd mmm yyyy hh:mm:ss"
                        .Value = Now
                    End With
                End If
                Application.EnableEvents = True
            End If
        End With
    End Sub

相关内容