使用相同选项更新下拉列表,单击活动列表

时间:2018-01-01 12:21:50

标签: excel vba excel-vba

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

要设置所有列表下拉列表,我必须逐一点击所有列表。

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

我尝试使用事件工作表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

使用此代码,必须在选定之前在活动单元格中具有一些值。如果您稍后更改了值,则无效。

我再次尝试使用事件工作表更改,但这是最糟糕的,因为我使用的不同行始终生成无限循环,即使我使用紧密循环重复操作只选择了单元格数。

因此,我正在寻找一些代码来更改所有列表下拉列表,仅选择更改活动单元格中的值(活动列表下拉列表)。单击一次并使用相同的值更改所有值。

1 个答案:

答案 0 :(得分: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