vba - Worksheet_Change 事件中的 Excel VBA 静态时间戳

标签 vba excel

我正在创建一个日志,当数据最初输入单元格 C 时,它将自动将时间戳填充到单元格 D 中。不幸的是,我遇到了困难。

  • 当我在单元格 C 中输入数据时,我能够在单元格 D 中获取时间戳,但如果我对单元格 C 进行任何更改,时间戳会再次更新。

  • 我需要让它发挥作用,以便只有在单元格 C 为空白时,单元格 D 中的时间戳才会更改。

  • 如果数据已输入到单元格 C,并且时间戳已加载到单元格 D,并且我需要修改单元格 C 中的内容,我不希望时间戳单元格 D 发生更改。

希望这是有道理的。 VBA代码如下:

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("C:C"))
    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 AM/PM mm/dd/yyyy"
                End With
            Else
                rCell.Offset(0, 1).ClearContents
            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

任何指导将不胜感激。

最佳答案

看起来很简单。我错过了什么吗?只需在更新之前检查以确保单元格为空即可。

With rCell.Offset(0, 1)
    If .Value <> "" Then
        .Value = Now
        .NumberFormat = "hh:mm:ss AM/PM mm/dd/yyyy"
    End If
End With

关于vba - Worksheet_Change 事件中的 Excel VBA 静态时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42729529/

相关文章:

ms-access - Access VBA : Scripting. 字典 - 转储到表?

vba - VisualBasic Word 中没有与应用程序关联的等待方法

excel - 仅当特定单元格值更改时才执行宏

sql - 优化 SQL ADO 返回时间

excel - 我可以通过Excel VBA查询SAP BO WEBI吗?我能做得足够快吗?

Excel 在索引列表中查找最大的部分值

excel - 使用现有连接从外部源添加新表

java.io.EOFException : Unexpected end of ZLIB input stream using Apache POI

python - 知道如何将其读取为 CSV 吗? - Python

excel - 从相邻列获取数据