Nie znam się na wydajności, ale wypróbuj następujące rzeczy. Twoje dane powinny znajdować się w arkuszu „db”, począwszy od wiersza 2. Zamiast combobox, umieszczam pole tekstowe (TextBox1
) i listę (ListBox1
) w formularzu użytkownika.
Private Sub TextBox1_Change()
Dim v As String
Dim YourInput As String
Dim iIdx As Long
Dim CharNumber As Integer
YourInput = TextBox1.Text
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ListBox1.Clear
lLastRow = Worksheets("db").Cells(3, 1).End(xlDown).Row
CharNumber = Len(YourInput)
For iIdx = 2 To lLastRow
v = Worksheets("db").Cells(iIdx, 1).Text
If LCase(Left(v, CharNumber)) = LCase(YourInput) Then
ListBox1.AddItem v
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
End Sub
Private Sub ListBox1_Click()
MsgBox ("Your selection: " & ListBox1.Text)
'do your stuff
End Sub