Nhờ mọi người trợ giúp em vấn đề sau ạ:
Em tạo 1 form trong đó có 1 listbox và 1 textbox.
Listbox hiện dữ liệu lọc từ sheet Data. Bình thường nếu em cho kết quả lọc đó ra sheet khác xong mới cho vào listbox thì lọc listbox theo textbox được. Nhưng bây giờ khi em đưa trực tiếp kết quả vào listbox thì không biết viết thế nào ạ. Nhờ mọi người giúp đỡ ạ.
Em cảm ơn.
Link File ạ:
Bạn tham khảo topic về listbox ở đây:
Bạn coi đúng k nhé. Bạn cần đăng nhập để thấy hình ảnh
Chuẩn luôn anh ạ. Mấy cái code thêm vào còn cách em 1 khoảng quá xa ạ =]]
Cám ơn anh ạ.
Hãy dành lời cảm ơn đó cho diễn đàn nhé bạn
Trong code mình có coment khá rõ.
Tất cả trong đó đều học hỏi dưới sự giúp đỡ của các thành viên trong diễn đàn mình.
Hãy dành lời cảm ơn đó cho diễn đàn nhé bạn
Chuẩn luôn anh ạ. Mấy cái code thêm vào còn cách em 1 khoảng quá xa ạ =]]
Cám ơn anh ạ.
Code đây bạn nhé Private Sub TextBox6_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] 'Khi txt6 dung phim len or xuong
If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len
If KeyCode = 13 Then 'Phim tro lai/enter
Me.TextBox6.SetFocus 'Setfocus cho txt6
Exit Sub
End If
'-----------------------------------'Loc du lieu tu listbox theo txt6
Dim lr As Integer 'Khai bao bien
Dim i, a As Integer
Dim dk1 As String
Dim kq, dk2
Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1
dk1 = UCase[TextBox6.text] 'dua toan bo chu Hoa thanh chu thuong
dk2 = UniConvert[dk1, "Telex"] 'Unicode
With ListBox1
.Clear ' xoa toan bo listbox
.ColumnCount = 7 ' Chia listbox thnh 7 cot
'.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox
'.ListStyle = fmListStyleOption
.MultiSelect = False 'Chon nhieu dong trong listbox là false
ReDim kq[1 To UBound[Arrkq], 1 To 7] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7
For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ...
If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[]
a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ
kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq
kq[a, 2] = Arrkq[i, 2]
kq[a, 3] = Arrkq[i, 3]
kq[a, 4] = Arrkq[i, 4]
kq[a, 5] = Arrkq[i, 5]
kq[a, 6] = Arrkq[i, 6]
kq[a, 7] = Arrkq[i, 7]
End If
Next i
ListBox1.List = kq 'dua ket qua loc vao listbox
End With
End Sub
Code đây bạn nhé Private Sub TextBox6_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] 'Khi txt6 dung phim len or xuong
If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len
If KeyCode = 13 Then 'Phim tro lai/enter
Me.TextBox6.SetFocus 'Setfocus cho txt6
Exit Sub
End If
'-----------------------------------'Loc du lieu tu listbox theo txt6
Dim lr As Integer 'Khai bao bien
Dim i, a As Integer
Dim dk1 As String
Dim kq, dk2
Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1
dk1 = UCase[TextBox6.text] 'dua toan bo chu Hoa thanh chu thuong
dk2 = UniConvert[dk1, "Telex"] 'Unicode
With ListBox1
.Clear ' xoa toan bo listbox
.ColumnCount = 7 ' Chia listbox thnh 7 cot
'.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox
'.ListStyle = fmListStyleOption
.MultiSelect = False 'Chon nhieu dong trong listbox là false
ReDim kq[1 To UBound[Arrkq], 1 To 7] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7
For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ...
If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[]
a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ
kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq
kq[a, 2] = Arrkq[i, 2]
kq[a, 3] = Arrkq[i, 3]
kq[a, 4] = Arrkq[i, 4]
kq[a, 5] = Arrkq[i, 5]
kq[a, 6] = Arrkq[i, 6]
kq[a, 7] = Arrkq[i, 7]
End If
Next i
ListBox1.List = kq 'dua ket qua loc vao listbox
End With
End Sub
Code đây bạn nhé Private Sub TextBox6_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] 'Khi txt6 dung phim len or xuong
If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len
If KeyCode = 13 Then 'Phim tro lai/enter
Me.TextBox6.SetFocus 'Setfocus cho txt6
Exit Sub
End If
'-----------------------------------'Loc du lieu tu listbox theo txt6
Dim lr As Integer 'Khai bao bien
Dim i, a As Integer
Dim dk1 As String
Dim kq, dk2
Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1
dk1 = UCase[TextBox6.text] 'dua toan bo chu Hoa thanh chu thuong
dk2 = UniConvert[dk1, "Telex"] 'Unicode
With ListBox1
.Clear ' xoa toan bo listbox
.ColumnCount = 7 ' Chia listbox thnh 7 cot
'.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox
'.ListStyle = fmListStyleOption
.MultiSelect = False 'Chon nhieu dong trong listbox là false
ReDim kq[1 To UBound[Arrkq], 1 To 7] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7
For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ...
If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[]
a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ
kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq
kq[a, 2] = Arrkq[i, 2]
kq[a, 3] = Arrkq[i, 3]
kq[a, 4] = Arrkq[i, 4]
kq[a, 5] = Arrkq[i, 5]
kq[a, 6] = Arrkq[i, 6]
kq[a, 7] = Arrkq[i, 7]
End If
Next i
ListBox1.List = kq 'dua ket qua loc vao listbox
End With
End Sub
Code đây bạn nhé Private Sub TextBox6_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] 'Khi txt6 dung phim len or xuong
If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len
If KeyCode = 13 Then 'Phim tro lai/enter
Me.TextBox6.SetFocus 'Setfocus cho txt6
Exit Sub
End If
'-----------------------------------'Loc du lieu tu listbox theo txt6
Dim lr As Integer 'Khai bao bien
Dim i, a As Integer
Dim dk1 As String
Dim kq, dk2
Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1
dk1 = UCase[TextBox6.text] 'dua toan bo chu Hoa thanh chu thuong
dk2 = UniConvert[dk1, "Telex"] 'Unicode
With ListBox1
.Clear ' xoa toan bo listbox
.ColumnCount = 7 ' Chia listbox thnh 7 cot
'.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox
'.ListStyle = fmListStyleOption
.MultiSelect = False 'Chon nhieu dong trong listbox là false
ReDim kq[1 To UBound[Arrkq], 1 To 7] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7
For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ...
If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[]
a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ
kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq
kq[a, 2] = Arrkq[i, 2]
kq[a, 3] = Arrkq[i, 3]
kq[a, 4] = Arrkq[i, 4]
kq[a, 5] = Arrkq[i, 5]
kq[a, 6] = Arrkq[i, 6]
kq[a, 7] = Arrkq[i, 7]
End If
Next i
ListBox1.List = kq 'dua ket qua loc vao listbox
End With
End Sub
Private Sub txt_tim_kiem_KeyUp[ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer] If KeyCode = 40 Or KeyCode = 38 Then Exit Sub 'Khi nhan phim mui ten xuong or len If KeyCode = 13 Then 'Phim tro lai/enter Me.txt_tim_kiem.SetFocus 'Setfocus cho txt6 Exit Sub End If '-----------------------------------'Loc du lieu tu listbox theo txt6 Dim lr As Integer 'Khai bao bien Dim i, a As Integer Dim dk1 As String Dim kq, dk2 Const rt As Byte = 1 'Tieu de dong 1 'Giu tieu de dong 1 dk1 = UCase[txt_tim_kiem.Text] 'dua toan bo chu Hoa thanh chu thuong dk2 = UniConvert[dk1, "Telex"] 'Unicode With lst_ket_qua_tim_kiem .Clear ' xoa toan bo listbox .ColumnCount = 11 ' Chia listbox thnh 11 cot '.ColumnWidths = "20;90;60;60;60;60;0" 'Chia do dong cua cac cot trong listbox .ListStyle = fmListStyleOption .MultiSelect = False 'Chon nhieu dong trong listbox là false ReDim kq[1 To UBound[Arrkq], 1 To 11] ' Khai bao lai mang [kq] theo mang da gan vao listbox 'So cot là:7 For i = LBound[Arrkq, 1] To UBound[Arrkq, 1] Step 1 'Cho i chay tu ... den ... If InStr[1, UCase[Arrkq[i, 3]], dk2] Then 'Tim cac ky tu danh vao textbox[txt_tenhang.value] trong mang ArrKQ[] a = a + 1 'Tim theo dk2 trong cot 3 mang ArrKQ kq[a, 1] = Arrkq[i, 1] 'Gan ket qua vao mang kq kq[a, 2] = Arrkq[i, 2] kq[a, 3] = Arrkq[i, 3] kq[a, 4] = Arrkq[i, 4] kq[a, 5] = Arrkq[i, 5] kq[a, 6] = Arrkq[i, 6] kq[a, 7] = Arrkq[i, 7] kq[a, 8] = Arrkq[i, 8] kq[a, 9] = Arrkq[i, 9] kq[a, 10] = Arrkq[i, 10] kq[a, 11] = Arrkq[i, 11] End If Next i lst_ket_qua_tim_kiem.List = kq 'dua ket qua loc vao listbox End With End Sub
Mình chèn code của bạn vào form của mình nhưng báo lỗi Type mismatch bạn ơi! Xử lý dùm mình được ko bạn? Cám ơn bạn rất nhiều!