Настройка свойства ListFillRange в окне свойств Excel - не VBA ISSUE - PullRequest
0 голосов
/ 12 декабря 2018

В окне свойств ComboBox ActiveX я пытаюсь поместить именованный диапазон в поле «ListFillRange».Окно свойств позволяет мне указать только две вещи: абсолютный диапазон: A2:A14 или именованный диапазон, связанный с абсолютным диапазоном (например, три именованных диапазона, отмеченных зеленым на скриншоте: * 1002)*

enter image description here

Все остальные именованные диапазоны на скриншоте, когда я помещаю их в поле «ListFillRange» и нажимаю «ENTER», поле удаляет себя и выигрываетне принимаю.

нужный мне диапазон отмечен желтым на скриншоте выше ("rng_HelperNameList_clients"), который связан со следующей формулой:

=CLIENTS!$J$2:INDEX(tbl_clients[@Searchable],COUNTIF(tbl_clients[@Searchable],"?*"))

Я также пыталсясделать это в VBA:

Private Sub CmboBox_SearchClient_main_Change()
CmboBox_SearchClient_main.ListFillRange = "=rng_HelperNameList_clients"
CmboBox_SearchClient_main.DropDown
End Sub

Но хотя я не получаю сообщение об ошибке, ComboBox не заполняется соответствующими данными о том, что формула должна его кормить. Я знаю, что формула работает, потому что формуларабота с ячейками на листе.

Как поместить именованный диапазон, связанный с формулой, непосредственно в поле «ListFillRange» в окне свойств ComboBox ИЛИзаставить VBA работать?


ОБНОВЛЕНИЕ:

Я понял, как обмануть свойства ComboBox.Я изменил именованный диапазон, чтобы связать его со случайным абсолютным диапазоном ($ A $ 1: $ A $ 14), который затем позволил мне поместить названный диапазон в поле «ListFillRange».Затем я пошел в именованный диапазон и изменил ссылку на мою формулу, и у окна свойств все еще был именованный диапазон в поле «ListFillRange»!Единственная проблема сейчас состоит в том, что в выпадающем списке не отображаются результаты формулы, хотя ячейка на листе, имеющая ту же формулу, есть.Но это другая проблема, и я думаю, что я создам новый вопрос для этого.

1 Ответ

0 голосов
/ 13 декабря 2018

Пожалуйста, посмотрите мое ОБНОВЛЕНИЕ в моем вопросе для обхода этой проблемы.Я также получил поле со списком для работы.Проблема заключалась в том, что она не была частью таблицы, в которой были данные, и ей нужно было получить некоторый код «последняя строка с данными», такой как INDEX, LOOKUP, ROW и т. Д. Я использовал INDIRECT, чтобы получить последнюю строку данных.

Это была моя последняя строка для именованного диапазона ListFilledRange:

=CLIENTS!$L$2:INDEX((INDIRECT("CLIENTS!$L$2"&COUNTA($L:$L))),COUNTIF(INDIRECT("CLIENTS!$L$2"&COUNTA($L:$L)),"?*"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...