Я делаю форму Excel с некоторыми элементами управления ActiveX и возникает проблемы включения следующей функциональности,:Экземпляр: поле со списком и флажок?
Я хочу для пользователей, чтобы выбрать номер в ComboBox11. Если число равно 0, форма изменяется так, что комбобокс 9 и 10 становятся отключенными (с использованием кода VBA), а таблица ниже «исчезает» (с использованием условного форматирования), информируя пользователя о том, чтобы не заполнить его.
С другой стороны, если пользователь выбирает число, большее 0, форма остается такой, какая есть. Под таблицей находится флажок (checkbox1), используемый для расширения таблицы (скрытие ранее скрытых строк), если данные, требуемые для ввода в форму, больше, чем размер таблицы.
код VBA за выпадающий список 11 является:
Private Sub ComboBox11_change()
Dim ws As Worksheet
Set ws = Sheets("Form")
If Not Me.ComboBox11.Text = "" Then ws.Range("J24") = CInt(Me.ComboBox11.Text) 'to write integer instead of text into linked cell
If Me.ComboBox11.Value = 0 Then
Me.ComboBox9.Enabled = False
Me.ComboBox10.Enabled = False
If Me.CheckBox1.Value = True Then Me.CheckBox1.Value = False 'if combobox11 is 0 than the table doesn't need to be expanded
Me.CheckBox1.Enabled = False
Else
Me.ComboBox9.Enabled = True
Me.ComboBox10.Enabled = True
Me.CheckBox1.Enabled = True
End If
End Sub
И код позади CheckBox1 является:
Private Sub CheckBox1_Change()
Dim ws As Worksheet
Set ws = Sheets("Form")
If CheckBox1.Value = False Then ws.Rows("46:71").Hidden = True
If CheckBox1.Value = True Then ws.Rows("46:71").Hidden = False
End Sub
Итак, если я выбираю 0 в combobox11 результат является:
Пока все хорошо. Но если я выбираю что-то большее, чем 0, скажем, 1 в combobox11, а затем попытаться расширить таблицу, нажав на CheckBox1, таблица расширяется, но я получаю сообщение об ошибке:
Ошибка выполнения «1004» : не возможно установить свойства: включен класс: OLEObject
(не уверен, что точный текст ошибки, так как я не использую английский MSOffice)
при нажатии на кнопку Debug, следующая строка в Sub ComboBox11_Change()
загорается:
Me.ComboBox9.Enabled = True
Странно, что эта ошибка не появляется, когда combobox11 остается пустым (значение не выбрано).
Я понятия не имею, почему флажок будет взаимодействовать с другими выпадающими списками. Я смущен, и любая помощь будет очень признательна.
Вы пытались использовать Application.EnableEvents = False в самом начале «CheckBox1_Change» и Application.EnableEvents = True в нем и в нем? – dee
Что такое ListFillRange из ComboBox11 или как определяется List of ComboBox11? Возможно ли, что скрытие строк в CheckBox1_Change влияет на список ComboBox11? Если да, то почему? –
@dee: спасибо за ваше предложение. Просто попробовал это и появилась такая же ошибка –