Excel在更改宏时使用不同工作表链接两个单元格

时间:2017-11-07 07:03:16

标签: excel vba excel-vba

我有一个包含多个工作表的Excel工作簿。我在WORKSHEET A中有一个单元格,其名称为TRACK1,另一个单元格位于WORKSHEET B中,范围名称为TRACK2。

每个TRACK1和TRACK2都从列表中验证。用户可以从选择单元格时显示的下拉列表中更改任一单元格。

我希望能够允许用户更改任何一个并让另一个也更改为匹配。 TRACK1和TRACK2的更改值已更改,反之亦然。

我知道如何做这个基本宏,但是如何阻止事件传播?

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(Target, Range("TRACK1")) Is Nothing Then
        Range("TRACK2") = Range("TRACK1")
    End If

    If Not Application.Intersect(Target, Range("TRACK2")) Is Nothing Then
        Range("TRACK1") = Range("TRACK2")
    End If

End Sub

1 个答案:

答案 0 :(得分:1)

在工作表A的代码模块中,使用:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Application.Intersect(Target, Range("TRACK1")) Is Nothing Then
        Worksheets("WORKSHEET B").Range("TRACK2") = Range("TRACK1")
    End If
    Application.EnableEvents = True
End Sub

在工作表B的代码模块中,使用:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Application.Intersect(Target, Range("TRACK2")) Is Nothing Then
        Worksheets("WORKSHEET A").Range("TRACK1") = Range("TRACK2")
    End If
    Application.EnableEvents = True
End Sub