来自 2 个列表 EXCEL 2010 的数据验证

来自 2 个列表 EXCEL 2010 的数据验证

我有两组动态列表,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

唯一的缺点是,每次向列表中添加值时都需要运行宏,您可以通过工作簿更改将其放入

相关内容