Как использовать именованную константу массива для заполнения Active-X ComboBox в Excel - PullRequest
1 голос
/ 08 июня 2011

Я бы хотел настроить мои значения ComboBox как константу именованного массива, где вы заходите в Менеджер имен, определяете имя и присваиваете ему значение вроде:

={"A", "B", "C"}

Я обнаружил, чтоListFillRange будет принимать только Range, поэтому я не могу его назначить.

Хотя он будет работать для нормального именованного диапазона, например так:

myComboBox.ListFillRange = "MyList"

Так как же назначить NamedКонстанта массива для заполнения ComboBox?

Ответы [ 2 ]

2 голосов
/ 08 июня 2011

После долгих поисков я нашел это решение:

myComboBox.List() = Evaluate(ThisWorkbook.Names("MyList").RefersTo)
1 голос
/ 08 июня 2011

Я не могу заставить ваш метод работать на меня, но это, вероятно, мои настройки?

Если бы я пытался это сделать, я бы либо

  1. Программно загружать список по элементам

или

2i) Предположим, произвольно "J" - диапазон заполнения списка

2ii) Определите именованный диапазон, скажем "COLJ" = = Лист1! $ J $ 2: ИНДЕКС ($ J $ 2: $ J $ 65000, COUNTA ($ J $ 2: $ J $ 65000))

2ii) Скопируйте / отфильтруйте нужные элементы в J2: Jx

2ii) Назначить Listfillrange, используя VBA, myComboBox.ListFillRange = "COLJ"

...