Проверка данных из 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

Единственным недостатком является то, что макрос нужно будет запускать каждый раз, когда вы добавляете значение в свой список, вы можете добавить его через изменение рабочей книги.

Другие вопросы по тегам