每次对某一行进行更改时,如何停止 VBA 时间戳代码更新所有行上具有此功能的所有单元格?

每次对某一行进行更改时,如何停止 VBA 时间戳代码更新所有行上具有此功能的所有单元格?

后来编辑:我现在意识到这是因为用户插入了行,我认为这导致(所有)时间戳单元格在每次插入时都更新。不确定如何解决这个问题。

基本上,我想要做的是当有人填写同一行的 P2 列或 R2 列时,时间戳出现在单元格 A2 中,而不会影响其他行。

根据上述措辞,我希望单元格 A2 包含已编辑的 P2 或 R2 列的时间戳,并且如果 P2 或 R2 保持未修改则保留该时间戳。

我在 Excel 表中使用了以下代码,但由于某种原因,在更新任意行上的单元格 P / R 时,单元格 A[row] 中的时间戳会更改为所有 A 单元格的最后编辑时间戳。

我的目标是让它逐行工作并且不影响所有其余的行。

感谢任何我能得到的帮助。

Function Timestamp(Reference As Range)
If Reference.Value <> "" Then
Timestamp = Format(Now, "m/dd/yy hh:mm")
Else
Timestamp = ""
End If
End Function

我的标题首先出现,然后在 A2 列中使用公式=IF(AND(P2="",R2<>""),Timestamp(R2),Timestamp(P2))

答案1

您应该尝试在选项中禁用自动计算:

在此处输入图片描述

然后编写 vba 代码,指定当目标列中有活动时公式应该更新,如下所示:Application.CalculateFullRebuild

相关内容