通过公式(Excel)更改较大单元格范围中的单元格的时间戳

安迪

作为问题的后续措施,每当通过一系列单元格的公式更改某个单元格时,我都需要在相邻单元格中添加一个时间戳。

我知道这意味着要构建一个数组以将以前的值存储到下面的代码中(该代码可以实现相同的功能,但仅适用于单个单元格),并且希望对实现此功能有所帮助。

这是适用于单个单元格的代码...

在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 
卡伦达

您可以将以前的值保留在一个Dictionary数组中,而不是数组中。要使用字典,您需要添加对Microsoft脚本运行时库的引用

(工具>参考> Microsoft脚本运行时库)


标准模块

Public PrevVal As Dictionary

ThisWorkbook模块

Private Sub Workbook_Open()
    Dim r As Range
    Set PrevVal = New Dictionary
    For Each r In Worksheets("Sheet1").Range("A1:A10")
        PrevVal.Add Item:=r.Value, Key:=r.Address
    Next r
End Sub

图纸模块

Private Sub Worksheet_Calculate()
    Dim v As Variant

    For Each v In PrevVal.Keys()
        If Range(v).Value <> PrevVal(v) Then
            Range(v).Offset(0, 1).Value = Format(Now, "dd/mm/yyyy hh:mm:ss")
            PrevVal(v) = Range(v).Value
        End If
    Next v
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章