ditimdl
Thành viên thường trực




- Tham gia
- 11/10/06
- Bài viết
- 378
- Được thích
- 107
- Giới tính
- Nam
- Nghề nghiệp
- Pharmacist




Gửi Anh (Chị) và các bạn!
Mình có làm 1 form chứ listbox để tìm kiếm nhưng khi nhập ký tự cần tìm kiếm vào textbox thì nó báo lỗi.
Mong các bạn xem và giúp đỡ!
Private Sub UserForm_Initialize()
With Application
.WindowState = xlMaximized
'Zoom = Int(.Width / Me.Width * 100)
Width = .Width
Height = .Height
End With
'Load data
[COLOR=#ff0000] If Not IsArray(pub_ArrDanhMuc) Then[/COLOR]
pub_ArrDanhMuc = Sheet3.Range("A5:C" & Sheet3.Range("C65536").End(xlUp).Row)
pub_Ubd = UBound(pub_ArrDanhMuc)
[COLOR=#ff0000]End If[/COLOR]
ListData.List =[COLOR=#ff0000] pub_ArrDanhMuc[/COLOR]
'OpHS = True
End Sub
Private Arr(), FltCol As Long
Private Sub UserForm_Initialize()
With Application
.WindowState = xlMaximized
'Zoom = Int(.Width / Me.Width * 100)
Width = .Width
Height = .Height
End With
'Load data
Arr = Sheet3.Range("A5:C" & Sheet3.Range("C65536").End(xlUp).Row).Value
ListData.List = Arr
OpHS.Value = True
End Sub
Private Sub OpHS_Click()
If OpHS.Value Then
FltCol = 3
tbxTuKhoa = Null
'tbxTuKhoa.SetFocus
End If
End Sub
Private Sub OpID_Click()
If OpID.Value Then
FltCol = 2
tbxTuKhoa = Null
'tbxTuKhoa.SetFocus
End If
End Sub
'Code chính:
Private Sub tbxTuKhoa_Change()
Dim GetRows()
Dim strType As String
Dim n As Long, r As Long
If tbxTuKhoa.Text = "" Then
ListData.List = Arr
Else
' strType = "*" & UCase(tbxTuKhoa) & "*" ''<-- Neu muon loc bat ky
strType = UCase(tbxTuKhoa.Text) & "*"
ReDim GetRows(1 To UBound(Arr))
For r = 1 To UBound(Arr)
If UCase(Arr(r, FltCol)) Like strType Then
n = n + 1
GetRows(n) = r
End If
Next
If n Then
Dim ArrFilter(), c As Byte
ReDim ArrFilter(1 To n, 1 To 3)
For r = 1 To n
For c = 1 To 3
ArrFilter(r, c) = Arr(GetRows(r), c)
Next
Next
ListData.List = ArrFilter
Else
ListData.Clear
End If
End If
End Sub



