Массив именованных диапазонов не работает или невозможен? - PullRequest
1 голос
/ 21 марта 2019

У меня есть список опций, которые превышают ограничение в 256 символов для проверки данных, поэтому я пытаюсь использовать именованный диапазон из массива строк, но он не работает или невозможен?

heresкод, который я пытаюсь:

ActiveWorkbook.Names.Add Name:="mylist", RefersTo:="={""one"",""two""}"

With Target.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=mylist"
End With

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

Спасибо

1 Ответ

2 голосов
/ 21 марта 2019

Таким образом вы создаете именованный диапазон с именем Test с использованием Sheet1.Range (A1: A10) и импортируете проверку данных со значениями диапазона в ячейке Sheet1.Range("B1")

Option Explicit


Sub test()

    With ThisWorkbook

        .Names.Add Name:="rngTEst", RefersToR1C1:=.Worksheets("Sheet1").Range("A1:A10") 'Create the range

        With .Worksheets("Sheet1").Range("B1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=INDIRECT(""rngTest"")"
        End With

    End With

End Sub
...