从条目中创建excel中的自动日期戳

时间:2010-05-10 02:33:14

标签: excel vba

当我在A列中输入一个条目时,我试图在B列中发生日期戳事件。现在我可以在VBA中执行此操作而没有任何问题,我遇到的麻烦是还有一个条目将会最后进入D栏,并且在E栏中也需要一个日期戳。这可能吗。这是我到目前为止使用的代码示例。

Private Sub Worksheet_Change(ByVal Target As Range) 对于目标中的每个单元格     如果Cell.Column< = 3那么        如果Cells(Cell.Row,1)<> “”然后是细胞(Cell.Row,2)=现在     万一 下一个细胞 结束子

1 个答案:

答案 0 :(得分:1)

如果您对用户输入的每个奇数列都没问题,并且时间戳在偶数列中(即您可以在A列中输入,TimeStamp将在B列中输入。您可以输入C列并且时间戳将放在D列等中。)然后你可以使用它:

Private Sub Worksheet_Change(ByVal Target As Range)

    'Only write a timestamp of an odd column changes (because the timestamps go in the even columns)
    If Target.Column Mod 2 > 0 Then

        'Get the first part of the address, to get the actual column being changed
        Dim columnAddress As String
        columnAddress = Target.Address

        If InStr(columnAddress, ":") > 0 Then
            columnAddress = Left(columnAddress, InStr(columnAddress, ":") - 1)
        End If

    'This will cause the TimeStamp to be undeletable (kind of like na Audit).
    'If you want the timestamp to disappear when you clear the column, uncomment the next few lines:

    '        If Not ActiveSheet.Range(columnAddress).Formula = "" Then

            ''Write the timestamp for the previous column
            ActiveSheet.Range(columnAddress).Offset(0, 1).Formula = Now

    '        Else
    '            ActiveSheet.Range(columnAddress).Offset(0, 1).Formula = ""
    '        End If
    End If


End Sub

您可以隐藏不需要显示时间戳的列。