【发布时间】:2016-11-22 02:10:19
【问题描述】:
我现在已经设置好了,所以当单元格数据发生变化时,它会更新日期。刷新工作簿时,它也会更新日期,即使我没有修改单元格内容。
如果我修改单元格内容,我只想更新日期。我正在从 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 更新为今天的日期。
谢谢。
【问题讨论】:
-
刷新工作表时会不会重新计算[D4],虽然新值等于旧值?
-
我会这样认为,刷新时它会从 csv 文件中提取数据。我只希望只有在单元格内容发生变化时才更改日期(即香蕉到橙色,而不是香蕉到香蕉)我已经更新了我的代码以了解我想要实现的目标。
-
如何通过将旧值保存在某处(例如在另一个隐藏的工作表中)并测试该值是否已更改来进行一些编程解决方案?
-
如果我找不到解决方案,我想我将不得不求助于它,不过谢谢。
标签: excel vba date excel-formula formula