Function xKey(text As String) As String
Dim i, s, k
text = LCase(text)
For i = 1 To Len(text)
k = Mid(text, i, 1)
If InStr("aeiouyd", k) > 0 Or AscW(k) > 128 Then
s = s & "[!bc,f-h,j-n,p-t,v-x,z, ]" 'thử chơi liều ;))
Else
s = s & k
End If
Next
xKey = s
End Function
Private Sub TextBox1_Change()
Dim sArray(), i As Integer, k As Integer, j As Integer, Arr(), dArr(), key
sArray = Sheet_Data.Range("A3:D" & Sheet_Data.[A65536].End(xlUp).Row).Value
ReDim Arr(1 To UBound(sArray), 1 To 4)
key = "*" & xKey(TextBox1.text) & "*"
For i = 1 To UBound(sArray)
If LCase(sArray(i, 2)) Like key Then
k = k + 1
For j = 1 To 4
Arr(k, j) = sArray(i, j)
Next
End If
Next
If k > 0 Then
ReDim dArr(1 To k, 1 To 4)
For i = 1 To k
For j = 1 To 4
dArr(i, j) = Arr(i, j)
Next
Next
ListBox1.Clear
ListBox1.List() = dArr
End If
End Sub