在多列上自动显示 VBA 中的日期和时间

问题描述 投票:0回答:1

正如主题所示,我希望我的 Excel 公式在相应单元格上键入数据后自动显示日期和时间。我可以在 A 列和 B 列上获取日期和时间,同时在 C 列上键入数据。下面是我的 VBA 代码。

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("Input")) Is Nothing Then
Application.EnableEvents = False
    On Error Resume Next
    ActiveSheet.ShowAllData
    On Error GoTo 0
    Range("MyList").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("Criteria"), Unique:=False
    Application.EnableEvents = True
    End If
    
    If Target.Column <> 3 Then Exit Sub
    Application.EnableEvents = False
        If Target.Offset(0, -2).Value = "" And Target.Offset(0, -2).Value = "" Then
            Target.Offset(0, -2).Value = Date
            Target.Offset(0, -1).Value = Time
        End If
Application.EnableEvents = True
End Sub

我想要在 I 列和 J 列上输入相同的内容,同时在 K 列和其他列上键入数据,也与照片上一样 as below photo

谢谢你。

excel vba date time auto
1个回答
0
投票

个人喜好,但对于这种情况,我会使用

Select
而不是
If-statement
,以使其更加干净。

如有必要,它还可以让以后更轻松地进行修改。

Select Case Target.Column
    Case 3, 11
        Application.EnableEvents = False
        If Target.Offset(0, -2).Value = "" And Target.Offset(0, -2).Value = "" Then
            Target.Offset(0, -2).Value = Date
            Target.Offset(0, -1).Value = Time
        End If
    Case Else
        Exit Sub
End Select
© www.soinside.com 2019 - 2024. All rights reserved.