Excel VBA combobox не позволяет выбирать определенные элементы из списка

У меня есть combobox на моем листе с динамическим поиском, динамический поиск выполняется путем поиска введенных букв в списке, который находится на другом листе. Поиск осуществляется с помощью формул excel. Список представляет собой определенный диапазон, а затем список listbillrange для списка combobox установлен на именованный диапазон. Когда я набираю раскрывающийся список, открывается для определенных элементов, которое позволяет мне выбирать из списка, а для других выбор исчезает по мере выбора. Я попытался понять, почему эти предметы исчезают. Список длинный (10 000 наименований), поэтому он работает медленно, но я не уверен, что это проблема.

Как я могу исправить такую ​​проблему? Есть ли способ определить переменную для выбора mouseclick из выпадающего списка?

Спасибо заранее, Тали

Это мой код:

Private Sub ComboBox1_Change() Sheets("PS").EnableCalculation = True ComboBox1.ListFillRange = "DropDownList" ComboBox1.DropDown End Sub Private Sub CommandButton21_Click() Dim PS As Worksheet Application.ScreenUpdating = False Application.ErrorCheckingOptions.BackgroundChecking = False Sheets("PharmaSoft").Select Set PS = Sheets("PS") SelectionA = PS.Range("J2").Value If ComboBox1.Value = SelectionA Then Range("J19") = "Pharmacy purchase price" Range("N19") = PS.Range("K2") Range("O19") = "ILS" Range("J21") = "Pharmacy selling price Incl.VAT" Range("N21") = PS.Range("L2") Range("O21") = "ILS" Range("J23") = "Package size" Range("N23") = PS.Range("M2") Range("J19:O23").Select With Selection.Font .ThemeColor = xlThemeColorDark1 .TintAndShade = 0 End With Selection.Font.Bold = True Application.ScreenUpdating = True Range("N19").Errors.Item(1).Ignore = True Range("N21").Errors.Item(1).Ignore = True Range("N23").Errors.Item(1).Ignore = True Else MsgBox "Please select a product", vbCritical, "Error" End If Sheets("PS").EnableCalculation = False End Sub Private Sub CommandButton22_Click() Application.ScreenUpdating = False Sheets("PharmaSoft").Select ComboBox1.Value = Null Range("J19:O23").Value = Null Application.ScreenUpdating = True End Sub Also the code for the workbook: Private Sub Workbook_Open() Sheets("PharmaSoft").Select Application.ScreenUpdating = False Sheets("PharmaSoft").ComboBox1.Value = Null Range("J19:O23").Value = Null Application.ScreenUpdating = True End Sub 

Хотя я не могу прокомментировать то, что вы делаете, учитывая, что ваш поиск выполняется, как вы упоминаете с помощью формул excel. Я знаю, что использование проверки данных через поле со списком может быть довольно быстрым. Метод, который я использую, соответствует этой странице и очень быстро. Это почти мгновенно в диапазоне проверки, который составляет около 15 тыс. Строк. Самое приятное в том, что он обеспечивает автоматическое завершение. Поэтому, когда вы вводите поле со списком и это значение отсутствует в списке, запись, соответствующая одному символу назад, исчезает. Это хороший визуальный сигнал, действительно ли вы выбрали выбор или нет. И, конечно же, вы все равно можете использовать раскрывающийся ящик обычным способом. Единственная нижняя сторона заключается в том, что, как указано в ссылке, вам нужно дважды щелкнуть, чтобы перейти в режим автозавершения.

  • Получите пользовательское значение ввода Excel ComboBox VBA
  • excel vba для заполнения combobox в листе из sql select query
  • Как запустить событие изменения ActiveX ComboBox?
  • Apache POI ComboBoxes с VLOOKUP
  • Откройте документ PDF из выбранного значения в combobox - Userform
  • ComboBox Очистить Excel VBA
  • Установить начальную точку для UsedRange
  • Не удалось выбрать combobox
  • Как установить элементы ComboBox в другой
  • Использование VBA, как заполнять значения ComboBox на основе конкретной комменки в таблице excel
  • Как добавить значение в combobox из столбца?
  • Давайте будем гением компьютера.