2012-01-23 1 views
3

Я исследовал, но не смог найти, возможно ли сохранить строку вместо Range в ActiveX ComboBox.VBA хранит строку вместо диапазона в ListFillRange ActiveX ComboBox

В моей книге столько зависимостей, что она пересчитывает ComboBox (ы) и т. Д. Всякий раз, когда пользователь вводит какой-либо тип формулы. Я вставил значения в базовый диапазон, основанный на формуле, который помогает и отключает вычисление безрезультатно. Любые рекомендации приветствуются.

Обновление - привязка привязана, и это пример установки диапазона.

ThisWorkbook.Worksheets("Securities").OLEObjects("cboList").ListFillRange = "Securities!" & Range("mySecurities").Address 
+0

путаница (с точки зрения ОП и отвечающего) Я считаю, связано с тем, что их два основных типа «Combo коробки» в Excel. FYI есть комбинированное поле «active X» для самого листа (внедренного как OLEobject) и выпадающего списка activeX на основе MSForms, который доступен исключительно из VBA. Для объекта OLEObject я считаю, что это должно быть привязано к диапазону OR или набору строковых значений (но не для обоих одновременно). Для сопоставления MSForms см. Метод, описанный Рейчел ниже. –

+1

Я не понимал, что у activex есть две «комбинированные поля», но это разъясняет мое замешательство. Честно говоря, я, вероятно, использовал бы эту версию, но мой босс хотел, чтобы она выглядела так, поэтому у меня не было выбора. Я беру это из вашего комментария, что это невозможно. Спасибо за ввод. – Brendan

+1

нет проблемo. да, я думаю, что они предназначены для разных целей. Сорт Forms обычно является модальным, поэтому, если вы не используете элемент управления refedit, вы даже не сможете выбрать Range во время выполнения (при условии, что вы хотите его изменить). –

ответ

3

Используйте метод AddItem свойства ControlFormat:

With Sheet1.Shapes("ComboBox1").ControlFormat 
    .AddItem "Sunday" 
    .AddItem "Monday" 
    .AddItem "Tuesday" 
End With 
+1

Спасибо за сообщение .... К сожалению, это не работает в моем случае, потому что я привязал его, то есть когда вы выпадаете, он показывает один список, но когда вы выбираете, он показывает другое. Я думаю, я мог бы сделать vlookup от возвращения, но предпочел бы, если бы я мог использовать что-то вроде .AddItem в связанном контексте. Большое спасибо. – Brendan

Смежные вопросы