[英]How to update a cell in Excel VBA with NOW time for a another cell update which in turn was updated via other cell changes?
我需要使用Now()
更新单元格E2,以更改单元格D2
任何值。
注意D2
值取决于许多其他像A2, B2 and C2
单元格。
我尝试了Worksheet_Change
,但是这触发了手动更新,而且我需要更新E2
的单元格也会自动更新(即不通过手动更新)。
可以接受任何解决方案,其中单元格A2
, B2
和C2
正在获取实时供稿,而`D2具有基于它们的公式。
现在,如果D2
更改,我需要带有Now()
日期和时间的E2
。
您可以将Calculate事件与一个内存变量一起使用:
Public OldD2 As Variant
Private Sub Worksheet_Calculate()
If Range("D2").Value <> OldD2 Then
Application.EnableEvents = False
Range("E2").Value = Now
OldD2 = Range("D2").Value
Application.EnableEvents = True
End If
End Sub
我通过使用Range对象的Precedent属性解决了该问题。
我检查了更改后的单元格是否是我的先例的一部分,如果是,则使用“目标行”(更改后的单元格),将逻辑移到所需的“列”(它是静态的)上。
谢谢,萨拉
私有子Worksheet_Change(按范围将ByVal目标)作为范围集的关键像元昏暗的键元= Sheets(“ FUT_CALLS-1”)。Range(“ AD1:AD1”)。EntireColumn
如果不相交(目标,keycells.Precedents)什么都没有,
If (Sheets("FUT_CALLS-1").Cells(Target.Row, 30).Value = "BUY" Or Sheets("FUT_CALLS-1").Cells(Target.Row, 30).Value = "SELL") And Sheets("FUT_CALLS-1").Cells(Target.Row, 30).Value <> Sheets("MyCodeSheet").Cells(Target.Row, 1).Value Then
Sheets("FUT_CALLS-1").Cells(Target.Row, 32).Value = Now()
Sheets("MyCodeSheet").Cells(Target.Row, 1).Value = Sheets("FUT_CALLS-1").Cells(Target.Row, 30).Value
End If
如果结束则结束
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.