Tôi không biết về hiệu suất, nhưng hãy thử những điều sau đây. Dữ liệu của bạn phải nằm trong trang tính "db", từ hàng 2 trở đi. Chèn một hộp tổ hợp, tôi đặt một hộp văn bản (TextBox1
) và một danh sách (ListBox1
) trong một UserForm.
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