我知道这个问题已经被问过很多次了,我确实搜索过并尝试用给出的解决方案来解决这个问题,但无济于事。也许我做错了什么,但我对 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