链接下拉列表?

链接下拉列表?

我想在 Excel 中链接 2 个下拉列表。搜索解决方案总是导致层叠下拉列表。我想要的是两个具有相同选项的下拉列表。当您更改其中一个时,另一个也会更改。

我尝试过简单地相互引用,但当然会得到循环引用错误。如果可能的话,我很想不使用 VBA 来做到这一点,因为我会有很多,但如果不可行,我理解。

答案1

如果您希望两个单元格都可编辑,则没有 VBA 就无法完成您所描述的操作。

正如您所发现的,相互引用这些公式会产生循环引用。即使它可以工作,只要您从下拉列表中选择一个值,任何公式都会被覆盖。

因此,VBA 是您唯一的选择。如果单元格位于两个不同的工作表上,则代码可能如下所示:

在 Sheet1 的 Sheet 模块中:

Private Sub Worksheet_Change(ByVal Target As Range)
' monitor cell A1
If Not Intersect(Target, Range("A1")) Is Nothing Then
    Application.EnableEvents = False 'prevent endless loop of events
    ' copy selected value to Sheet2, cell b1
    ThisWorkbook.Worksheets("Sheet2").Range("B1") = Range("A1")
    Application.EnableEvents = True
End If
End Sub

在 Sheet2 的 Sheet 模块中

Private Sub Worksheet_Change(ByVal Target As Range)
' monitor cell B1 on sheet 2
If Not Intersect(Target, Range("B1")) Is Nothing Then
    Application.EnableEvents = False 'prevent endless loop of events
    ' copy selected value to Sheet1, cell A1
    ThisWorkbook.Worksheets("Sheet1").Range("A1") = Range("B1")
    Application.EnableEvents = True
End If
End Sub

答案2

正如 Teylyn 所说,它不可能按照您希望的方式运行。

除了 VBA 之外的另一种解决方法是使用表单控件下拉列表而不是数据验证中的下拉列表:

  • 转到“开发人员”选项卡(如果不可见,则根据说明启用它这里)——插入——表单控件——“组合框(表单控件)”
  • 插入并调整大小以覆盖单元格
  • 右键单击它并选择“控制”
  • 输入“输入范围”和“单元格链接”
  • 将其复制并粘贴到其他地方,现在,由于两者都有相同的单元格链接,如果您更改其中任何一个,另一个也会更新。

相关内容