Неотредактируемая комбинация в форме пользователя

#excel #vba

Вопрос:

Я создал форму пользователя, используя макросы в Excel. Код не зависит от excel (он не считывает данные из excel).

Как только откроется форма пользователя, я заполню поле с несколькими элементами в нем,:

 combo.additem "a" 
combo.additem "b" 
combo.additem "c"'
 

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

Тем не менее, как только я это сделаю, мои варианты выпадающих списков окажутся:

 "" (blank cell)
a
b
c
 

Есть ли возможность сохранить поле со списком недоступным для редактирования без добавления первой пустой ячейки?

Спасибо

Комментарии:

1. Опция «пусто» эквивалентна «ничего не выбрано». AFAIK, нет никакого способа избежать этой опции, поскольку это неинициализированное состояние выпадающего списка с таким стилем. Я бы предложил просто установить значение по умолчанию, если это уместно, и обработать пустое значение с проверкой по мере необходимости.

2. Когда вы добавляете 3 элемента в выпадающий список, как вы упомянули, вы не получаете 4 варианта в выпадающем списке? Как вы получили эти 4 варианта?

3. @Comintern Вы предлагаете, чтобы я создал, например, Combo_Initialize Combo.value = «a»?

4. Это было предложение Сиддхарта, но да. Думайте о пустом параметре как о «нулевом».

5. @Siddharthout У меня есть 4 варианта (пустой 3), и как только откроется форма пользователя, после выбора опции она удаляет пустой. Это заставляет меня ошибаться только при первом выборе

Ответ №1:

Выпадающий список станет недоступным для редактирования dropbox, когда вы измените его Styleна 2 - fmStyleDropDownList .

Добавьте .ListIndex=0 в свой код, чтобы в dropbox не было пустого поля, а первый элемент отображался по умолчанию.