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

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

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

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

下面的代码将允许您访问所有包含依赖于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语句是必要的,因为如果没有依赖单元格,则循环将引发错误。

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