В моей пользовательской форме ComboBox, этот ComboBox показывает список с более чем 100 значениями. Если я начну вводить некоторые буквы в ComboBox, я хочу, чтобы в раскрывающемся списке автоматически отображались только те значения, которые имеют напечатанные буквы (пока это работает нормально). Но если я выберу одно значение, ComboBox останется пустым.
Вот мой код для ComboBox:
Private Sub ComboBox1_Change()
Worksheets("DataSheet").Range("B1").Value = dbCustomer.Value
dbCustomer.RowSource = "=ddCustomer" 'Named Range
End Sub
В моей рабочей таблице «DataSheet» в столбце «D» я написал формулу:
=IFERROR(INDEX(Customer;AGGREGAT(15;6;(ROW(Customer)-1)/(--(SEARCH($B$1;Customer)>0));ZEILE()-1);1);"")
Именованный диапазон "ddCustomer", с которым я сохранил:
=DataSheet!$D$2:INDEX(DataSheet!$D$2:$D$105;COUNTIF(DataSheet!$D$2:$D$105;"?*"))
Что мне нужно изменить, чтобы выбранное мной значение отображалось в ComboBox?
EDIT
Не могу найти решение, возможно, оно не идеально, но у меня оно отлично работает.
Private Sub dbCustomer_Change()
Dim customer As Object
Set customerValue = Worksheets("DataSheet").Range("C2:C479").Find(dbCustomer.Value, LookIn:=xlValues, LookAt:=xlWhole)
If customerValue Is Nothing Then
dbCustomer.Clear
GoTo FillDB
Else
Worksheets("DataSheet").Range("B1").Value = ""
Exit Sub
End If
FillDB:
Worksheets("DataSheet").Range("B1").Value = dbCustomer.Value
For Each customer In Worksheets("DataSheet").Range("D2:D479")
If customer <> "" Then
dbCustomer.AddItem customer.Value
End If
Next
End Sub