2013-02-22 147 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