首页 文章

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

提问于
浏览
0

我有一个包含多个工作表的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 回答

  • 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
    

相关问题