我有一个包含3个工作表的工作簿。 Worksheet1具有工作表2和工作表3的汇总。因此工作表1永远不会手动更新,因为数据/信息在工作表2/3中已更新,并且它通过单元格中的v查找公式填充到工作表1中。
每当工作表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
答案 0 :(得分:0)
这是与Worksheet_Calculate
一起使用的基本代码
Private Sub Worksheet_Calculate()
Dim myTableRange As Range
Set myTableRange = Range("D1:D30") 'Change the range as needed
For Each cel In myTableRange
'when a cell is changed in the range due to a formula, the code loops through and checks all the cells for a change.
If cel.Value >= 0.01 And cel.Value <= 0.99 And cel.Offset(, 3).Value = "" And cel.Offset(, 4).Value = "" Then
'If the timestamp is not for columns G and H, change the offset(,3) to 10, and offset(,4) to 11
cel.Offset(, 3).Value = Now
ElseIf cel.Value = 1# And cel.Offset(, 4).Value = "" Then
'Test for 100%
cel.Offset(, 4).Value = Now
End If
Next cel
End Sub