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