我正在创建一个日志,当数据最初输入单元格 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/