Vba 单元格更改时的通知消息

Vba 单元格更改时的通知消息,vba,messagebox,Vba,Messagebox,所以我想在一个单元格发生变化时显示一条消息,当单元格发生变化时通知某人。更改的单元格是从其他工作簿中的单元格引用的。这是到目前为止我的代码,但它只在我手动更改单元格时起作用。当我更改被引用的单元格时,它不起作用 Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range Set KeyCells = Range("B2:P43") If Not Application.Inters

所以我想在一个单元格发生变化时显示一条消息,当单元格发生变化时通知某人。更改的单元格是从其他工作簿中的单元格引用的。这是到目前为止我的代码,但它只在我手动更改单元格时起作用。当我更改被引用的单元格时,它不起作用

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

    Set KeyCells = Range("B2:P43")

    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
        Is Nothing Then

        Beep

        MsgBox "Cell " & Target.Address & "has changed."

    End If
End Sub

尝试完全限定范围,如下所示:

Set KeyCells = Sheet1.Range("B2:P43")

如果range KeyCells包含公式,并且希望在公式结果更改时捕获,则应使用Calculate事件。