我现在已经设置好了,所以当单元格数据发生变化时,它会更新日期。刷新工作簿时,即使我没有修改单元格内容,它也会更新日期。
如果我修改单元格内容,我只想更新日期。我从CSV文件中提取数据,所以我不断地不断刷新。我如何解决这个问题,以便它只显示真正修改单元格的日期?
我目前设置了这样的公共功能,但它不起作用。
Public Function worksheetChange(ByVal Target As Range)
If Not Application.Intersect(Target, [D4]) Is Nothing Then [L4] = Date
End Function
即使我刷新工作表并且我没有修改过单元格,它仍会更新日期,我该如何解决这个问题?
编辑:我已经提出了这种类型的VBA代码,但我不确定如何使它工作。Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, [D4]) Is Nothing Then
If Not ActiveWorkbook.RefreshAll Then [L4] = Date
End Sub
事后看来,这段代码意味着如果应用程序不相交,那么请使用D4,如果工作簿没有刷新,则将L4更新为今天的日期。
谢谢。
答案 0 :(得分:1)
参考link
Dim oldValue
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
oldValue = Target.Worksheet.Range("D4").Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("D4")) Is Nothing Then
If oldValue <> Target.Worksheet.Range("D4").Value Then
Target.Worksheet.Range("L4").Value = Date
End If
End If
End Sub