2015-01-30 2 views
0

У меня есть кусок кода в модуле:выпадающих на UserForm заселения только после отмены первой попытки

UserForm1.Show 
UserForm1.ComboBox1.clear 
UserForm1.ComboBox2.clear 
UserForm1.ComboBox1.List = Array("xxxxxxx", "xfdshthr", "tyetrert") 

Пользователь запускает этот код, чтобы открыть UserForm с 2 Наримером, вторыми из которых должен быть очищается после того, как пользователь ввел новое значение в первом.

Необычно, когда я запускаю этот скрипт, первое поле со списком не заполняется, поэтому я нажимаю кнопку отмены в форме (unload me) и снова запускаю код. На этот раз combobox заполняется так, как ожидалось. Это происходит каждый раз.

Кто-нибудь знает, что может быть причиной этого?

ответ

0

Потому что вы запустите неправильный порядок:

Наполнение выпадающий/ListBox в UserForm должен сделать опре при загрузке UserForm. Предпочтительным событием для этого является Userform_Initialize. Так заполнить это событие в режиме конструктора:

Private Sub Userform_Initialize() 
    combobox1.list=array("aaa","bbb","ccc") 
End Sub 

После сделано командой «Userform1.show» будет автоматически запускать события-код и заполнить выпадающий.

+0

Perfect. Не знал, что это событие существует - спасибо! – JS1991