Excel 多个工作表更改事件:多个下拉列表
我试图创建一个工作簿,如果我更改了一张工作表上的下拉列表,它会自动更新第二张工作表上的相同下拉列表。这些下拉列表将代表不同的场景,我创建它的目的是让最终用户能够更改任何工作表中的场景下拉列表,而不仅仅是一个 我使用此引用创建了一个VBA,用于更改1下拉列表--它工作正常()。但是,现在我想添加另外两个下拉列表,这样,如果对它们进行了任何更改,它会相应地更新Excel 多个工作表更改事件:多个下拉列表,excel,vba,events,onchange,worksheet,Excel,Vba,Events,Onchange,Worksheet,我试图创建一个工作簿,如果我更改了一张工作表上的下拉列表,它会自动更新第二张工作表上的相同下拉列表。这些下拉列表将代表不同的场景,我创建它的目的是让最终用户能够更改任何工作表中的场景下拉列表,而不仅仅是一个 我使用此引用创建了一个VBA,用于更改1下拉列表--它工作正常()。但是,现在我想添加另外两个下拉列表,这样,如果对它们进行了任何更改,它会相应地更新 如果你知道一些更好的方法,我也愿意接受其他的解决方案。如果这个问题很简单,我很抱歉——我是VBA新手 使用中的示例,如果希望将此规则应用于2
如果你知道一些更好的方法,我也愿意接受其他的解决方案。如果这个问题很简单,我很抱歉——我是VBA新手 使用中的示例,如果希望将此规则应用于2组下拉列表(总共4组),而不是1组,则应将代码段从“if Not Intersect(…)”复制到“.End if”,然后更新对第二组单元格的引用 例如:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim targetSheet As Worksheet
If Not Intersect(Target, Range("A1")) Is Nothing Then ' watch only cell A1
Set targetSheet = ActiveWorkbook.Worksheets("Sheet2") ' define the sheet to copy to
On Error Resume Next
Application.EnableEvents = False
targetSheet.Range("B1") = Target.Value ' copy to cell B1 on the target sheet
Application.EnableEvents = True
End If
If Not Intersect(Target, Range("A2")) Is Nothing Then ' watch only cell A1
Set targetSheet = ActiveWorkbook.Worksheets("Sheet2") ' define the sheet to copy to
On Error Resume Next
Application.EnableEvents = False
targetSheet.Range("B2") = Target.Value ' copy to cell B1 on the target sheet
Application.EnableEvents = True
End If
End Sub
然后,您将重复另一个工作表。欢迎使用堆栈溢出。请不要使用代码链接,而是将代码内联到问题本身。请参阅使用事件的方法。感谢@HardcoreHenry的反馈。感谢@BigBen。这非常有帮助。我通过格式化代码段编辑了您的帖子。对于f未来参考,您可以通过选择代码块并点击post编辑器中的
{}
按钮来完成。谢谢,@TomBrunberg