记录数据输入时间:修改我的宏以使其对多个列有效

时间:2014-04-10 14:00:14

标签: excel vba excel-vba timestamp

如果A列(同一行)的内容被更改,我发现在线宏自动输入B列(行X)中的日期。

我想修改它以便它可以在多行上运行 - 这样除了监视行A中的更改之外,它还会对列D,F中的列C,E,G和输入日期执行相同的操作, H(分别)如果前者的内容发生了变化。

这是我找到的宏,来自:http://excel.tips.net/T003116_Recording_a_Data_Entry_Time.html


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim rCell As Range
    Dim rChange As Range

    On Error GoTo ErrHandler
    Set rChange = Intersect(Target, Range("A:A"))
    If Not rChange Is Nothing Then
        Application.EnableEvents = False
        For Each rCell In rChange
            If rCell > "" Then
                With rCell.Offset(0, 1)
                    .Value = Now
                    .NumberFormat = "hh:mm:ss"
                End With
            Else
                rCell.Offset(0, 1).Clear
            End If
        Next
    End If

ExitHandler:
    Set rCell = Nothing
    Set rChange = Nothing
    Application.EnableEvents = True
    Exit Sub
ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
End Sub

我对所有不同的VBA元素都不太熟悉,所以请原谅基本问题。希望你能抽出时间帮忙,谢谢。

1 个答案:

答案 0 :(得分:0)

替换:

Set rChange = Intersect(Target, Range("A:A"))

使用:

Set rChange = Intersect(Target, Range("A:A, C:C, E:E, G:G"))