【发布时间】:2017-04-03 13:41:06
【问题描述】:
作为this 问题的后续行动,每当通过一系列单元格的公式更改单元格时,我都需要在相邻单元格中设置时间戳。
我知道这意味着构建一个数组以将先前的值存储到下面的代码中(实现相同但仅适用于单个单元格)并且希望能帮助实现这一点。
这是适用于单个单元格的代码...
在Sheet1单元格A1中,输入这个公式
=Sheet2!A1+1
现在在一个模块中粘贴这段代码
Public PrevVal As Variant
将此粘贴到工作表代码区域
Private Sub Worksheet_Calculate()
If Range("A1").Value <> PrevVal Then
Range("B1").Value = Format(Now, "dd/mm/yyyy hh:mm:ss")
PrevVal = Range("A1").Value
End If
End Sub
最后在 ThisWorkbook 代码区域粘贴此代码
Private Sub Workbook_Open()
PrevVal = Sheet1.Range("A1").Value
End Sub
【问题讨论】:
-
相反,您可以使用 worksheet_change 事件来检测工作表中的更改(任何数据范围)并在更改的正常行中添加时间戳。您可以使用 Target.row 来识别更改的行。
-
@ArindamD,Worksheet_Change 未检测到公式更改
-
两个地方都改成
PrevVal = application.sum(Range("A1:A9").Value)。那么如果 A1:A9 中的任何值发生变化,所有值的总和都会发生变化。 -
@CallumDA - 这就是为什么它是评论而不是作为解决方案发布的原因。如果 OP 认为它是足够的,那么它比变体数组或脚本字典解决方案的计算密集度更低(并且更容易遵循)。
-
@Andy - 抱歉,我只是没有从你的标题或叙述中推断出来。