获取VBA中所有单元格更改的通知

时间:2016-01-26 11:09:23

标签: excel vba excel-vba

我想获取excel中所有单元格更新的通知。 我目前的代码是这样的:

Private Sub Worksheet_Change(ByVal Target As Range)
    ...
End Sub

我的问题是,只有在发生直接小区更改时才会运行。如果我修改了一个单元格,如果它们的值依赖于修改后的单元格,则其他一些单元格可能会更改 有没有办法检测这些变化呢?我想避免使用镜像复制方法。

1 个答案:

答案 0 :(得分:3)

以下代码允许您访问包含依赖于Target的公式的所有单元格。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    ...
    On Error Resume Next
    For Each cell In Target.Dependents
        ' Do something
    Next cell
    On Error GoTo 0
    ...
End Sub

On Error Resume Next语句是必需的,因为如果没有依赖单元格,循环将抛出错误。

您可能还想在Application.Calculate循环之前调用For Each,以强制重新计算这些单元格。