我有两组动态列表,List1
&List2
列表是使用 OFFSET 和 COUNTA 创建的,因此新条目包含在列表内等等。
在单元格 A1 中我想使用数据验证列表功能,但我希望它引用这两个列表,
有人告诉我这需要通过 VBA 来完成?
有什么建议 ?
我目前使用:
=(COUNTIF(list1,A1)+COUNTIF(list2,A1))>=1
在“自定义”部分,但这不允许我有列表下拉选项
答案1
您可以使用宏将值强制放入单个列表中
Sub Validation()
Dim a$, el As Range
' SET THE LIST RANGE, YOU CAN USE MORE THAN 2
Dim rng1 As Range, rng2 As Range
'DEFINE THE CELLS USED FOR THE LIST, NAMED RANGE OR INDIRECT CAN BE USED
Set rng1 = Range("List1")
Set rng2 = Range("List2")
'COLLECT VALUES FROM LISTS
For Each el In rng1
a = a & el.Value & ","
Next
For Each el In rng2
a = a & el.Value & ","
Next
' SET DESTIANTION OF DATA VALIDATION RULE
With Range("A1").Validation
.Delete
.Add Type:=xlValidateList, Formula1:=a
End With
Set rng1 = Nothing
Set rng2 = Nothing
End Sub
唯一的缺点是,每次向列表中添加值时都需要运行宏,您可以通过工作簿更改将其放入