Dynami c Combobox ListFillRange без VBA - PullRequest
       17

Dynami c Combobox ListFillRange без VBA

0 голосов
/ 01 апреля 2020

У меня есть документ Excel, который мне нужно развернуть без VBA для моих коллег. У меня есть Combobox на одном из его листов, который я хочу заполнить динамически. Содержимое комбинированного списка является результатом запроса данных из другой рабочей книги, поэтому число строк может варьироваться.

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

Sub SetListFillRange()
    ComboBox1.ListFillRange = "=MyQueryTable[SomeColumn]"
    ComboBox1.ListFillRange = "=TestName" 'A named Range pointing to MyQueryTable[SomeColumn]
    ComboBox1.ListFillRange = "=[TestName]"
    ComboBox1.ListFillRange = "='SheetX'!A2:INDEX('SheetX'!$A:$A,COUNTA('SheetX'!$A:$A))"
    ComboBox1.ListFillRange = "=OFFSET('SheetX'!A2,0,0,COUNTA('SheetX'!$A:$A) - 1,1)"
End Sub

Смысл, почему я пытаюсь использовать ActiveX ComboBox, - это функция автозаполнения, которая отсутствует в форме ComboBox, которая приходит с Excel (на самом деле вы не можете вводить текст вообще ...).

1 Ответ

0 голосов
/ 01 апреля 2020

Если вы используете обычную таблицу Excel, вы можете использовать List вместо

Sub SetListFillRange()
    ComboBox1.List = ActiveSheet.ListObjects("Table1").ListColumns("SomeColumn").DataBodyRange.Value
End Sub

Если вы хотите использовать ListFillRange, вы можете попробовать

ComboBox1.ListFillRange = ActiveSheet.ListObjects("Table1").ListColumns("SomeColumn").DataBodyRange.Address
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...