我在同一行中有一些下拉列表。他们所有人的名单都有相同的选项。
要设置所有列表下拉列表,我必须逐一点击所有列表。
我尝试使用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
使用此代码,必须在选定之前在活动单元格中具有一些值。如果您稍后更改了值,则无效。
我再次尝试使用事件工作表更改,但这是最糟糕的,因为我使用的不同行始终生成无限循环,即使我使用紧密循环重复操作只选择了单元格数。
因此,我正在寻找一些代码来更改所有列表下拉列表,仅选择更改活动单元格中的值(活动列表下拉列表)。单击一次并使用相同的值更改所有值。
答案 0 :(得分:1)
假设我在A1
,B1
和C1
中有三个下拉菜单。
此代码根据更改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