【问题标题】:Update drop down lists with the same choice clicking in the active list在活动列表中单击相同的选项更新下拉列表
【发布时间】:2018-01-01 12:21:50
【问题描述】:

我在同一行中有一些下拉列表。他们的列表中都有相同的选项。

要使用相同的选择设置所有下拉列表,我必须在所有列表中一一单击。

我尝试使用 Crtl+Intro,但它不起作用。我也尝试在这个方法中使用keysen,但这仅适用于常规单元格,不适用于下拉列表。

我尝试使用事件 Worksheet SelectionChange 并获得了一些结果,但我没有设法更改未激活的下拉列表的值。下面是一些示例代码:

If Target.Cells.Count > 1 And Target.Rows.Count = 1 Then
    Dim cell As Range
    For Each cell In Selection
        cell = ActiveCell.Value
    Next cell
End If

使用此代码,在选择之前必须在活动单元格中具有一些值。如果您稍后更改该值将不起作用。

我再次尝试使用 Worksheet Change 事件,但那是最糟糕的,因为我使用的不同行总是会产生无限循环,即使我使用关闭循环仅重复所选单元格数量的操作。

所以,我正在寻找一些代码来更改所有选择的列表下拉列表,仅更改活动单元格中的值(活动列表下拉列表)。单击一次并将它们全部更改为相同的值。

【问题讨论】:

  • 您的下拉列表是使用数据验证创建的,还是工作表上的表单控件?
  • 如果它们都有相同的列表并且您总是希望它们具有相同的值,为什么不简单地使用一个下拉列表并将所有内容链接到该列表?

标签: vba excel


【解决方案1】:

假设我在A1B1C1 中有三个下拉菜单。

此代码基于更改A1 中的下拉菜单将所有值设置为相同:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dd1 As Range, dd2 As Range, dd3 As Range

    Set dd1 = Range("A1")
    Set dd2 = Range("B1")
    Set dd3 = Range("C1")

    If Not Intersect(Target, dd1) Is Nothing Then
        dd2 = dd1.Validation.Parent
        dd3 = dd1.Validation.Parent
    End If
End Sub

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多