gpt4 book ai didi

vba - 通过公式更改较大单元格区域中的单元格时的时间戳 (Excel)

转载 作者:行者123 更新时间:2023-12-02 17:42:21 24 4
gpt4 key购买 nike

作为 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

最佳答案

您可以将以前的值保存在字典中而不是数组中。要使用字典,您需要添加对Microsoft Scripting Runtime Library的引用

(工具 > 引用 > Microsoft 脚本运行时库)

<小时/>

标准模块

Public PrevVal As Dictionary
<小时/>

此工作簿模块

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

关于vba - 通过公式更改较大单元格区域中的单元格时的时间戳 (Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43186207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com