Giải Thích code TimKiem

Liên hệ QC

Rùa Con 1080

Thành Viên Sao Chép 2
Tham gia
4/5/16
Bài viết
351
Được thích
47
Giới tính
Nữ
Nhờ mọi người giải thích dùm em code TimKiem này với:
Mã:
Private Sub TimKiem()
Dim GetRows()
Dim strType As String
Dim n As Long, r As Long
        
    strType = UCase(tb_Search) & "*"
    ArrChungLoai = Sheet4.Range(Sheet4.Range("A65000").End(xlUp), Sheet4.Range("B3")).Value
    pri_Ubd1 = UBound(ArrChungLoai, 1)
    pri_Ubd2 = UBound(ArrChungLoai, 2)
   
    For r = 1 To pri_Ubd1
    If UCase(ArrChungLoai(r, 1)) Like strType Then
        n = n + 1
        ReDim Preserve GetRows(1 To n)
        GetRows(n) = r
    End If
    Next
        
    If n Then
        Dim ArrFilter(), c As Byte
        ReDim ArrFilter(1 To n, 1 To pri_Ubd2)
        
        For r = 1 To n
            For c = 1 To pri_Ubd2
            ArrFilter(r, c) = ArrChungLoai(GetRows(r), c)
            Next
        Next
        
        ListBox1.List = ArrFilter
    Else
        ListBox1.List = Array() 'neu tbx_Search =empty -> show all
    End If
End Sub
Trong code khi gỏ một từ vào textBox thì sẽ tìm tất cả những tên phụ liệu có từ đó và lấy luôn DVT theo tên phụ liệu đó. Bây giờ em muốn lấy luôn mã số theo tên phụ liệu thì chỉnh code làm sao ah.
Cám ơn mọi người.
 
Em xin giải thích thêm mảng ArrChungLoai là cột A là tên phụ liệu, cột B là ĐVT. Bây giờ em chỉnh lại Cột A là Tên phụ liệu, cột B là mã Số, cột C là ĐVT, thì ArrChungLoai:
Mã:
ArrChungLoai = Sheet4.Range(Sheet4.Range("65000").End(Xlup), Sheet4.Range([B][COLOR=#ff0000]"C3"[/COLOR][/B])).Value
thì phải chỉnh code làm sao để lấy luôn cột B và cột C theo cột A.
 
Trước mảng ArrChungLoai có 2 cột (A & B), bây giờ mảng ArrChungLoai là 3 Cột (A, B & C) thì chỉnh làm sao trong code và trong vòng lặp For ... next
 
Bạn viết vậy thí fải chờ duy nhất người đã giúp bạn mới tiếp tục xem xét & trả lời mà thôi.

Có thể đưa file đó lên, may ra sẽ có thêm người hỗ trợ.

Chúc vui! --=0
 
Nhờ mọi người giải thích dùm em code TimKiem này với:
Mã:
Private Sub TimKiem()
Dim GetRows()
Dim strType As String
Dim n As Long, r As Long
        
    strType = UCase(tb_Search) & "*"
    [COLOR=#ff0000]ArrChungLoai = Sheet4.Range(Sheet4.Range("A65000").End(xlUp), Sheet4.Range("B3")).Value[/COLOR]
    pri_Ubd1 = UBound(ArrChungLoai, 1)
    pri_Ubd2 = UBound(ArrChungLoai, 2)
   
    For r = 1 To pri_Ubd1
    If UCase(ArrChungLoai(r, 1)) Like strType Then
        n = n + 1
        ReDim Preserve GetRows(1 To n)
        GetRows(n) = r
    End If
    Next
        
    If n Then
        Dim ArrFilter(), c As Byte
        ReDim ArrFilter(1 To n, 1 To pri_Ubd2)
        
        For r = 1 To n
            For c = 1 To pri_Ubd2
            ArrFilter(r, c) = ArrChungLoai(GetRows(r), c)
            Next
        Next
        
        ListBox1.List = ArrFilter
    Else
        ListBox1.List = Array() 'neu tbx_Search =empty -> show all
    End If
End Sub
Trong code khi gỏ một từ vào textBox thì sẽ tìm tất cả những tên phụ liệu có từ đó và lấy luôn DVT theo tên phụ liệu đó. Bây giờ em muốn lấy luôn mã số theo tên phụ liệu thì chỉnh code làm sao ah.
Cám ơn mọi người.
Bạn sửa dòng này
Mã:
ArrChungLoai = Sheet4.Range(Sheet4.Range("[COLOR=#ff0000]A[/COLOR]65000").End(xlUp), Sheet4.Range("[COLOR=#ff0000]C[/COLOR]3")).Value
Và sửa thuộc tính ColumnCount của Listbox1 từ 2 lên thành 3. Sửa các thuộc tính ColumnWidths và Width của Listbox1 nếu cần.
 
Web KT
Back
Top Bottom