Как более правильно заполнить ComboBox
Есть список из 37 пунктов которые должны присутствовать в ComboBox и со временем они будут добавляться и удаляться из списка. Отсюда вопрос:
Как правильно организовать заполнение? Вписывать каждый пункт внутрь
Кусок кода
Dim lst As Variant
lst = Array("Пункт1", "Пункт2", "ПунктN")
OtdelenieCheki.List = lst
Или каким то образом вписывать в столбец или ячейку и брать их потом оттуда и если 2 вариант более верен то как это возможно организовать.
Цитата:
Originally posted by blind7
Вернее суть такова:
Есть список из 37 пунктов которые должны присутствовать в ComboBox и со временем они будут добавляться и удаляться из списка. Отсюда вопрос:
Как правильно организовать заполнение? Вписывать каждый пункт внутрь
Кусок кода
Dim lst As Variant
lst = Array("Пункт1", "Пункт2", "ПунктN")
OtdelenieCheki.List = lst
Или каким то образом вписывать в столбец или ячейку и брать их потом оттуда и если 2 вариант более верен то как это возможно организовать.
Вернее суть такова:
Есть список из 37 пунктов которые должны присутствовать в ComboBox и со временем они будут добавляться и удаляться из списка. Отсюда вопрос:
Как правильно организовать заполнение? Вписывать каждый пункт внутрь
Кусок кода
Dim lst As Variant
lst = Array("Пункт1", "Пункт2", "ПунктN")
OtdelenieCheki.List = lst
Или каким то образом вписывать в столбец или ячейку и брать их потом оттуда и если 2 вариант более верен то как это возможно организовать.
У ComboBox (Excel) в свойствах есть параметр ListFillRange
задаешь его, например, A1:A10.
OtdelenieCheki.AddItem "Пункт1"
OtdelenieCheki.AddItem "Пункт2"
OtdelenieCheki.AddItem "Пункт3"
Удалить определённый элемент списка можно так :
OtdelenieCheki.RemoveItem 2
Так как по умолчанию все элементы списка начинаются с 0, то приведённая инструкция удалит "Пункт3"
Что касается связи ComboBox c ячейками рабочего листа, то :
Если ComboBox расположен на UserForm, то для связи с определёнными ячейками Вам понадобится свойство RowSource.
После присвоения определённого адреса свойству RowSource вручную, применение свойства List или метода AddItem, RemoveItem вызовет ошибку.
Если Вам необходимо чтобы ComboBox отображал содержимое ячеек, то при этом Вы имели возможность удалять некоторые пункты, то воспользуйтесь свойством List :
bg = Range("A1:A10")
'bg = ActiveSheet.Range("A1:A10")
OtdelenieCheki.List = bg