2016-02-01 44 views
0

我需要用Now()更新單元格E2,以便在單元格D2中更改任何值。如何在Excel VBA中使用NOW時間更新另一個單元更新,然後通過其他單元更改更新單元?

注意D2值取決於許多其他單元格,如A2, B2 and C2

我試過Worksheet_Change,但這會觸發手動更新,我需要更新E2的單元格也會自動更新(即不會通過手動更新)。

任何解決方案,其中單元格A2,B2C2正在獲取實時饋送,並且D2具有基於它們的公式,這是可以接受的。

現在,如果D2更改,我需要E2Now()日期和時間。

+0

嘗試'= IF(D2 = 0,「」,「」)&NOW()'或'= LEFT(D2,0)&NOW()' –

+0

或看[這裏](http://stackoverflow.com/q/35051903/5461205) –

+0

你能更好嗎? –

回答

0

你可以用一個內存變量使用計算事件:

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 
+0

嗨,我明白這對單細胞的作品,但我需要這整個E列 –

+0

@SaraVaNan我很抱歉沒有看到你原來的問題需要。 –

0

我使用Range對象的先例物業解決了這個問題。

我檢查如果更改的單元格是我的先例的一部分,如果是的話使用目標行(更改單元格),我移動到我所需的列(這是靜態的)做我的邏輯。

謝謝, 薩拉

私人小組Worksheet_Change(BYVAL目標作爲範圍) 昏暗keycells作爲範圍 集keycells =表( 「FUT_CALLS-1」)範圍。( 「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 

結束如果 結束小組

相關問題