Список ComboBox через диапазон - PullRequest
0 голосов
/ 11 января 2019

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

Private Sub UserForm_Initialize()

    ComboBox1.List = Array("Item1", "Item2", "Item3", "Item4")

End Sub

Ответы [ 3 ]

0 голосов
/ 11 января 2019

Это то, как вы используете диапазон, чтобы установить источник строки поля со списком. Вы также можете сделать это в VBA.

Me.combobox1.RowSource = "MyRange"

enter image description here

0 голосов
/ 11 января 2019

Вы можете установить это в Таблицу (ListObject) вместо статического диапазона. Создайте таблицу со своим списком значений, а не просто используйте статический диапазон ячеек. Таким образом, когда вам нужно добавить в список, вы просто вводите новые значения, которые добавляются в таблицу. В моем примере у меня есть таблица с именем «Table1» и столбец с заголовком «Numbers». Затем вызовите эту функцию:

Private Sub UserForm_Initialize()
    ComboBox1.RowSource = "=Table1[Numbers]"
End Sub

Вы должны сделать это на Iniitalize, так как установка RowSource из свойств ComboBox приведет к сбою Excel при первом добавлении элемента в список.

Это дает вам список, который вы можете редактировать, не редактируя код позади пользовательской формы.

0 голосов
/ 11 января 2019

Вы можете использовать диапазон на листе для создания, даже именованного диапазона, например ::100100

combobox1.list = range(cells(1,1),cells(100,1)).value

combobox2.list = sheets(1).range("NamedRange")

arr = array("1","2","3")
combobox3.list = arr
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...