如果某个单元格被修改,如何更新单元格中的日期

时间:2016-11-22 02:10:20

标签: excel vba date excel-formula formula

我现在已经设置好了,所以当单元格数据发生变化时,它会更新日期。刷新工作簿时,即使我没有修改单元格内容,它也会更新日期。

如果我修改单元格内容,我只想更新日期。我从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更新为今天的日期。

谢谢。

1 个答案:

答案 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