2012-12-11 62 views
2

我有第11列(dde鏈接)中的數據。我希望在第12列的第11列中的數據發生更改時有時間戳。以下是我嘗試過但未按預期工作的一些代碼?dde鏈接單元格更改時的時間戳

在表1

.....:

Private Sub Workbook_Open(ByVal Target As Range) 
Sheet1.ValDDE = Target.Column = 10 
End Sub 

模塊1 ........:

Public ValDDE 
Private Sub Worksheet_Calculate(ByVal Target As Range) 
If VarType(ValDDE) = VarType(Target.Column = 10) Then 
If ValDDE <> Cells(Target.Column, 12).Value = Now Then _ 
    MsgBox "New value : " & Target.Column = 11 _ 
    Else Exit Sub 
Else: MsgBox "New value : " & Target.Column = 11 
End If 
ValDDE = Target.Column = 11 
End Sub 
Sub ddetrackchange() 

End Sub 
+1

是'Sheet1.ValDDE = Target.Column = 10'給您預期的結果?通常情況下,'A = B = C'將根據是否B = C或者...而給出A'True'或'False'... –

回答

0

我建議你刪除 '計算' 的方法,因爲它是那些令人討厭的表現之一放慢了horcrux

請用worksheet changed event試一下。如果您只檢測一個單元格,則不需要檢查範圍內的每個單元格是否帶有for loop

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
    Dim myRng As Range 
    Set myRng = Range("D2") 'change according to yours 
    If Target.Application.DDEAppReturnCode = True 'this check the dde link updates specifically 
     If Target.Address = myRng.Address Then   
     'change time in some other cell 
     Range("E2").value = now() 
     else 
     'do something else 
     End If 
    else 
    'do something else 
    End If 
End Sub 
+0

HI bonCodigo.Please你能檢查你的代碼,因爲似乎有錯誤,我似乎無法讓它運行。 –

相關問題