- Tham gia
- 22/7/14
- Bài viết
- 355
- Được thích
- 31
Mình tìm đoạn code này tại trang: http://www.giaiphapexcel.com/forum/showthread.php?72633-Hỏi-cách-tạo-combo-box-thông-minh
tác giả Của bạn : quang hà
Code này khá là hay, chỉ cần đánh 1 số từ liên quan trong textbox thì Listbox sẽ hiện ra danh sách những từ liên quan. tất cả đều ok , chỉ còn 1 nhược điểm là vẫn còn phân biệt chữ hoa chử thường. Ví dụ gõ từ " giải "
thì hiện ra như sau :
- giải pháp
- Giải pháp
- GIẢI PHÁP
mong các bạn sửa lại code sao cho gõ chử hoa chử thường đều lọc ra hết
Sub loc3()
Dim dl(), i As Long
dl = Sheets("hanghoa").Range("B4:B503").Value 'lay nguon hang hoa
Sheet10.ListBox1.Clear
For i = 1 To UBound(dl)
If dl(i, 1) <> "" Then
If TV(dl(i, 1)) Like TV("*" & Sheet10.TextBox1.Value & "*") Then
Sheet10.ListBox1.AddItem dl(i, 1)
End If
End If
Next
End Sub
Function TV(ByVal Text As String) As String
Dim CharCode, ResText As String, i As Long, tmp As String
On Error Resume Next
tmp = Text
CharCode = Array(ChrW(7855), ChrW(7857), ChrW(7859), ChrW(7861), ChrW(7863), ChrW(7845), ChrW(7847), _
ChrW(7849), ChrW(7851), ChrW(7853), ChrW(225), ChrW(224), ChrW(7843), ChrW(227), ChrW(7841), _
ChrW(259), ChrW(226), ChrW(273), ChrW(7871), ChrW(7873), ChrW(7875), ChrW(7877), ChrW(7879), _
ChrW(233), ChrW(232), ChrW(7867), ChrW(7869), ChrW(7865), ChrW(234), ChrW(237), ChrW(236), _
ChrW(7881), ChrW(297), ChrW(7883), ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), _
ChrW(7899), ChrW(7901), ChrW(7903), ChrW(7905), ChrW(7907), ChrW(243), ChrW(242), ChrW(7887), _
ChrW(245), ChrW(7885), ChrW(244), ChrW(417), ChrW(7913), ChrW(7915), ChrW(7917), ChrW(7919), _
ChrW(7921), ChrW(250), ChrW(249), ChrW(7911), ChrW(361), ChrW(7909), ChrW(432), ChrW(253), _
ChrW(7923), ChrW(7927), ChrW(7929), ChrW(7925))
ResText = "aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyy"
For i = 0 To UBound(CharCode)
tmp = Replace(tmp, CharCode(i), Mid(ResText, i + 1, 1))
tmp = Replace(tmp, UCase(CharCode(i)), UCase(Mid(ResText, i + 1, 1)))
Next
TV = tmp
End Function
tác giả Của bạn : quang hà
Code này khá là hay, chỉ cần đánh 1 số từ liên quan trong textbox thì Listbox sẽ hiện ra danh sách những từ liên quan. tất cả đều ok , chỉ còn 1 nhược điểm là vẫn còn phân biệt chữ hoa chử thường. Ví dụ gõ từ " giải "
thì hiện ra như sau :
- giải pháp
- Giải pháp
- GIẢI PHÁP
mong các bạn sửa lại code sao cho gõ chử hoa chử thường đều lọc ra hết
Sub loc3()
Dim dl(), i As Long
dl = Sheets("hanghoa").Range("B4:B503").Value 'lay nguon hang hoa
Sheet10.ListBox1.Clear
For i = 1 To UBound(dl)
If dl(i, 1) <> "" Then
If TV(dl(i, 1)) Like TV("*" & Sheet10.TextBox1.Value & "*") Then
Sheet10.ListBox1.AddItem dl(i, 1)
End If
End If
Next
End Sub
Function TV(ByVal Text As String) As String
Dim CharCode, ResText As String, i As Long, tmp As String
On Error Resume Next
tmp = Text
CharCode = Array(ChrW(7855), ChrW(7857), ChrW(7859), ChrW(7861), ChrW(7863), ChrW(7845), ChrW(7847), _
ChrW(7849), ChrW(7851), ChrW(7853), ChrW(225), ChrW(224), ChrW(7843), ChrW(227), ChrW(7841), _
ChrW(259), ChrW(226), ChrW(273), ChrW(7871), ChrW(7873), ChrW(7875), ChrW(7877), ChrW(7879), _
ChrW(233), ChrW(232), ChrW(7867), ChrW(7869), ChrW(7865), ChrW(234), ChrW(237), ChrW(236), _
ChrW(7881), ChrW(297), ChrW(7883), ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), _
ChrW(7899), ChrW(7901), ChrW(7903), ChrW(7905), ChrW(7907), ChrW(243), ChrW(242), ChrW(7887), _
ChrW(245), ChrW(7885), ChrW(244), ChrW(417), ChrW(7913), ChrW(7915), ChrW(7917), ChrW(7919), _
ChrW(7921), ChrW(250), ChrW(249), ChrW(7911), ChrW(361), ChrW(7909), ChrW(432), ChrW(253), _
ChrW(7923), ChrW(7927), ChrW(7929), ChrW(7925))
ResText = "aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyy"
For i = 0 To UBound(CharCode)
tmp = Replace(tmp, CharCode(i), Mid(ResText, i + 1, 1))
tmp = Replace(tmp, UCase(CharCode(i)), UCase(Mid(ResText, i + 1, 1)))
Next
TV = tmp
End Function
Lần chỉnh sửa cuối:
