Vba Excel使用“更改时”宏链接不同工作表中的两个单元格
我有一个包含多个工作表的Excel工作簿。我在工作表a中有一个单元格,区域名为TRACK1,在工作表B中有一个单元格,区域名为TRACK2 从列表中验证每个TRACK1和TRACK2。用户可以从选中单元格时显示的下拉列表中更改任一单元格 我希望能够允许用户更改其中一个,并将另一个也更改为匹配。TRACK1和TRACK2的更改值将更改,反之亦然 我知道如何执行此基本宏,但如何停止事件传播Vba Excel使用“更改时”宏链接不同工作表中的两个单元格,vba,excel,Vba,Excel,我有一个包含多个工作表的Excel工作簿。我在工作表a中有一个单元格,区域名为TRACK1,在工作表B中有一个单元格,区域名为TRACK2 从列表中验证每个TRACK1和TRACK2。用户可以从选中单元格时显示的下拉列表中更改任一单元格 我希望能够允许用户更改其中一个,并将另一个也更改为匹配。TRACK1和TRACK2的更改值将更改,反之亦然 我知道如何执行此基本宏,但如何停止事件传播 Private Sub Worksheet_Change(ByVal Target As Range)
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
在工作表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
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
在工作表B的代码模块中,使用:
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
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
Hi@YowE3K为什么我会收到
错误1004:对象“\u工作表”的方法“范围”失败
指向Range(“TRACK1”)=Range(“TRACK2”)
我使用工具栏左上角的命名框来命名单元格。我可以通过执行=TRACK1
访问任何工作簿中的每个单元格值。这些是工作簿的全局范围,对吗?我也尝试过像这样详细说明工作表Sheets(“Sheet2”).Range(“TRACK1”)=Sheets(“Sheet3”).Range(“TRACK2”)
,但由于下标超出范围而失败。错误。看来我们需要限定不在活动工作表中的范围引用-让我做一个更改。@TheAllapa OK-看看我刚才所做的更新。确保将工作表名称更改为实际名称。哎呀,刚刚注意到你的评论。你说你试过了?是否确实使用了正确的图纸名称作为正确的范围名称?