Страницы: 1
RSS
Обновить список ComboBox в форме
 
Добрый день.
У меня в форме есть 2 КомбоБокса. В первом RowSource является неизменным и постоянным. А вот во втором он должен меняться в зависимости от первого.
В RowSource вставляются именованные диапазоны. Для второго Комбобокса диапазон вычисляется в ячейке листа по сложной формуле (в ней учитывается масса условий).
Код у меня следующий:
Код
Private Sub ComboBox1_Change()
Range("МАКР_ВЫБ1").Offset(0, 0) = ComboBox1.Text
Лист1.Calculate
ComboBox2.Value = ""
ComboBox2.RowSource = Range("МАКР_ВЫБ2").Offset(0, 0)

В ячейке МАКР_ВЫБ2 как раз и находится формула.
С КомбоБокс ActiveX это все благополучно работает (только используется ListFillRange), а вот с формой ошибка 308 все время выпадает... Пробовал значение проверять (добавлял на форме Label1 и в коде Label1.Value = Range("МАКР_ВЫБ2").Offset(0, 0) ) - значение ставится. Все перерыл - не могу ответа найти. Не работает конкретно эта строка с RowSource (при ее удалении макрос срабатывает)
 
Смог решить эту проблему другим методом.
Код
Private Sub ComboBox1_Change()
Range("МАКР_ЛДСП_ВЫБ1").Offset(0, 0) = ComboBox1.Text
Лист1.Calculate
ComboBox2.Value = ""
End Sub

Private Sub ComboBox1_AfterUpdate()
ComboBox2.RowSource = Range("МАКР_ЛДСП").Offset(0, 0)
В этом случае все работает. Но хотелось бы все таки попроще - в одном событии.
Страницы: 1
Наверх