2013-02-22 164 views
4

我已經在列的數據,並想在B列時的時間戳A列中數據的變化時間戳更新

現在這裏是棘手的部分:A列的值基於公式,來自Vlookup表。這個Vlookup表格有dde鏈接。因此,有史以來沒有手動輸入電子表格。

如果您必須將數據輸入到列A中,但不能用於上述scernario或即使您說,下面的代碼運行良好。單元格A1 = C1+D1。通過改變C1或D1將改變A1 ......但是這不會激發宏。

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Column = 1 Then 
     Cells(Target.Row, 2).Value = Now 
    End If 
End Sub 
+0

VLookup表更新時是否觸發'Worksheet_Change'?你有什麼樣的公式?它們是通過多張紙張傳播還是僅傳播一張紙?我知道'Worksheet_Calculate()'會被觸發,但它不會提供'Target'範圍。 – Sam 2013-02-22 19:58:32

回答

2

我不熟悉太多這樣的事情,但連接Oracle數據庫選擇觸發Worksheet_Change事件與您的代碼就刷新在我的工作簿。但是,您的情況可能是另一回事 - 我沒有看到您的數據結構。

無論如何,嘗試使用以下技巧:在列A的某處添加任何簡單的公式,例如=A1(如果A1在更新DDE時發生變化) - 它應該在刷新時更改並因此觸發Worksheet_Change事件。

瞭解更多:DDE links in Excel 2000 - how to run a macro

+1

我已經看到這個建議給了很多次,並一如既往,它不工作!來自另一個應用程序的DDE戳不會觸發「更改」事件,也不會觸發間接引用。我已經用97年到2003年的不同版本的Excel對此進行了嘗試,結果相同(缺少)。到目前爲止,我沒有辦法觸發dde數據更改中的事件,我真的希望人們在發佈之前花一些時間來嘗試他們的示例。 – 2013-05-28 16:49:31