Excel 2016 VBA自动时间插入

Excel 2016 VBA自动时间插入,vba,excel,time,excel-2016,Vba,Excel,Time,Excel 2016,我在网上四处寻找答案,但没有找到任何关于我尝试做什么的帮助。当A列单元格被修改时,我希望在B列的相应单元格中自动输入时间,这同样适用于C列和D列。我不希望更新时间,这是我目前遇到的问题。以下是我目前拥有的代码: Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Column = 1 Then Target.Offset(, 1) = Time Els

我在网上四处寻找答案,但没有找到任何关于我尝试做什么的帮助。当A列单元格被修改时,我希望在B列的相应单元格中自动输入时间,这同样适用于C列和D列。我不希望更新时间,这是我目前遇到的问题。以下是我目前拥有的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Then
    Target.Offset(, 1) = Time
ElseIf Target.Column = 3 Then
    Target.Offset(, 1) = Time
End If
Application.EnableEvents = True
End Sub
这种编码是有效的,但它会更新B列和D列中的时间,这是我不想要的。我可以添加什么来停止时间更新


谢谢如果我正确理解您的问题,您只想在相邻列中没有显示时间的情况下更新时间吗?在这种情况下,这应该是可行的:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 1 Or Target.Column = 3 Then
        If Target.Offset(, 1) = vbNullString Then Target.Offset(, 1) = Now()
    End If
    Application.EnableEvents = True
End Sub

这与Gary的学生答案一致,但增加了条件并简化了代码。

尝试
Target.Offset(,1).value=Now()
我不想有时间更新是什么意思?您的意思是,只有当B(或D)单元格为空时,您才希望插入时间?我希望插入该时间,以便插入初始时间,之后不会因修改A和C列中的单元格而更新。Miqi180的答案修复了我所拥有的,并且按照我想要的方式工作。谢谢Miqi180!你的答案是我一直在寻找的,效果很好,再次感谢!