2015-07-24 3 views
1

В настоящее время у меня есть Userform с 79 Comboboxes, которые заполнены всеми одинаковыми значениями 1-5. На данный момент, если пользователь нажимает на нажатие клавиши по ошибке, я получаю сообщение об ошибке. потому что после изменения combobox он создает расчет, потому что он не распознает ввод символов. поэтому теперь я изменил combobox в fmStyleDropDownList, который работает только для добавления только элементов, перечисленных в combobox, теперь проблема заключается в том, что после события изменения combobox у меня нет инструкции if для ввода значения 0, если оно введено. Это не было бы проблемой, если бы у меня не было около 3000 comboboxes во всем моем проекте, поэтому мой вопрос: как я могу либо скрыть элемент 0 в combobox (если я удалю 0, то вычисление автоматически помещает 0 в место размещения combobox для того, чтобы расчет работал), или если a может добавить элемент управления в пользовательскую форму, если какой-либо из текста comboboxes равен 0, то frm? whatever.show.Отключить ввод клавиатуры в пользовательской форме Excel

Dim ctrl As Control 
For Each ctrl In Me.Controls 
If TypeOf ctrl Is MSForms.ComboBox Then 
    With ctrl 
     .AddItem "1" 
     .AddItem "2" 
     .AddItem "3" 
     .AddItem "4" 
     .AddItem "5" 
     .AddItem "0" 


    End With 
End If 
Next ctrl 

ответ

1

Проверьте ввод ключа в событии нажатия клавиши combobox.

Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 
    'Test for zero being pressed. 
    If KeyAscii = 48 Then 
     'If we get a zero entered, change it to nothing. 
     KeyAscii = 0 
    End If 
End Sub 
+0

Есть прочь, чтобы добавить это как если выпадающие на форме каждой формы имеет около 79 comboboxga и 79 comboboxna и имеет около 70-90 формы со всеми теми же выпадающими списками, потому что собираюсь каждый ящик и добавить это будет занять много времени, но будет делать это, если нужно быть – INOH

+0

@INOH Являются ли ваши комбинированные поля в массивах? – MatthewD

+0

Вот как я настраивал свои comboboxes, создал пользовательскую форму, добавлял все мои комбобокс, а затем в userform initialize я добавил этот код выше – INOH

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