【发布时间】:2020-04-07 04:06:03
【问题描述】:
我有一个包含三个工作表的工作簿。
Worksheet1 包含 worksheet2 和 worksheet3 的汇总。 Worksheet1 永远不会手动更新,因为数据/信息在 worksheet2/3 中更新,并通过单元格中的 vlookup 公式填充到 worksheet1。
每当工作表 1 的 D 列中的单元格首先包含 1%-99% 的百分比时,我想要一个时间戳。
- 我希望这个时间戳在输入第一个数据后永远不会改变。
- 我还希望时间戳显示在 G 列中。
每当工作表 1 中 D 列中的单元格首先包含 100% 时,我想要另一个时间戳。
- 我希望这个时间戳在输入第一个数据后永远不会改变。
- 我还希望在 H 列中打印时间戳。
只有在手动更改单元格时才会出现这种情况。由于工作表是根据公式填充的,因此没有发现变化。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myTableRange As Range
Dim myDateTimeRage As Range
Dim myUpdatedRange As Range
Set myTableRange = Range("D1:D314")
If Intersect(Target, myTableRange) Is Nothing Then Exit Sub
Set myDateTimeRage = Range("N" & Target.Row)
Set myUpdatedRange = Range("O" & Target.Row)
If myDateTimeRage.Value = "" Then
myDateTimeRage.Value = Now
End If
myUpdatedRange.Value = Now
End Sub
【问题讨论】:
-
如果你在处理公式,你需要使用
Worksheet_Calculate,而不是Worksheet_Change。 -
您必须在工作表 2+3 中寻找变化;如果他们更改,请查看工作表 1,如果单元格包含您要查找的内容,然后设置时间戳。
-
如果我使用 worksheet_calculate 代码不起作用
-
您是要在
columns G and H中为您的文本添加时间戳,还是在Columns N and O中为您的代码添加时间戳?
标签: excel vba excel-formula timestamp worksheet