4

我在 A 列中有数据,并且当 A 列中的数据发生更改时,我希望 B 列中有一个时间戳。

现在这是棘手的部分:A 列的值是基于公式的,来自 Vlookup 表。这个 Vlookup 表有 dde ​​链接。所以从来没有手动输入电子表格。

如果您必须在 A 列中输入数据,则下面的代码效果很好,但不适用于上述情况,或者即使您说。细胞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
4

2 回答 2

2

我对这些事情不太熟悉,但Worksheet_Change在我的工作簿中将 Oracle DB 选择触发器事件与您的代码在刷新时相关联。但是,您的情况可能是另一回事 - 我没有看到您的数据结构。

无论如何,尝试使用以下技巧:在 A 列的某处添加任何简单的公式,例如=A1(如果A1DDE 更新时发生更改) - 它应该在刷新时更改并因此触发Worksheet_Change事件。

在此处阅读更多内容:Excel 2000 中的 DDE 链接 - 如何运行宏

于 2013-02-22T18:57:49.343 回答
0

DDE 不会触发事件Worksheet_Change()。但是,DDE 确实会触发该Worksheet_Calculate()事件。当发生 DDE 更新时,您可以使用它来捕获。

于 2019-10-29T16:49:50.640 回答