繁体   English   中英

如何使用NOW时间在Excel VBA中更新单元格以进行另一个单元格更新,而另一个单元格更新又是通过其他单元格更改来更新的?

[英]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的单元格也会自动更新(即不通过手动更新)。

可以接受任何解决方案,其中单元格A2B2C2正在获取实时供稿,而`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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM