[Giúp] Viết Code tìm kiếm vật tư dựa vào mã vật tư, tên vật tư, Serial trong Sheet dữ liệu

Liên hệ QC

quyenpv

Thu nhặt kiến thức
Tham gia
5/1/13
Bài viết
709
Được thích
90
Giới tính
Nam
Nghề nghiệp
Decode cuộc đời!
Dear các anh chị!
Hiện em có file dữ liệu kiểm kê tài sản cuối năm cần xử lý dữ liệu mà máy treo liên tục, dữ liệu thật 32.738 dòng. Mỗi lần em filter là treo không thể thao tác được
Em nhờ anh chị viết giúp code có thể đánh mã vật tư, tên vật tư, Serial tại Sheet Tìm kiếm có thể lấy dữ liệu trong Sheet Database theo bảng như sau
Mong anh chị giúp đỡ, cám ơn vạn lần




TÌM KIẾM













Input

21021127229T9A001189













Mã danh mục

Tên Danh mục

ĐVT

Số lượng

Mã trạm

Tình trạng

Đơn giá

Thành tiền
















 

File đính kèm

  • Database_Help.xlsx
    3.9 MB · Đọc: 19
Bạn xài thử macro sự kiện này tại trang 'TimKiem':
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [c2]) Is Nothing Then
    Dim Rws As Long, J As Long, W As Integer, Tmr As Double
    Dim Arr()
    ReDim rArr(1 To 99, 1 To 9)
    
    [A4:i99].Value = rArr():                        Tmr = Timer()
    With Sheets("Database")
        Rws = .[b6].CurrentRegion.Rows.Count
        Arr() = .[b7].Resize(Rws, 18).Value
    End With
    For J = 1 To UBound(Arr())
        If Arr(J, 5) = Target.Value Then
            W = W + 1:                              rArr(W, 1) = W
            rArr(W, 2) = Arr(J, 1):                 rArr(W, 3) = Arr(J, 2)
            rArr(W, 4) = Arr(J, 4):                 rArr(W, 5) = Arr(J, 7)  '? '
            rArr(W, 6) = Arr(J, 9)
            rArr(W, 7) = IIf(Arr(J, 9) > 0, "OK", "-")
            rArr(W, 8) = Arr(J, 15):                rArr(W, 9) = "GPE.COM"
        End If
    Next J
    If W Then
        [A4].Resize(W, 9).Value = rArr():       [f2].Value = Timer() - Tmr
    Else
        [f2].Value = "Nothing!"
    End If
 End If
End Sub
 
Upvote 0
Bạn xài thử macro sự kiện này tại trang 'TimKiem':
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [c2]) Is Nothing Then
    Dim Rws As Long, J As Long, W As Integer, Tmr As Double
    Dim Arr()
    ReDim rArr(1 To 99, 1 To 9)
   
    [A4:i99].Value = rArr():                        Tmr = Timer()
    With Sheets("Database")
        Rws = .[b6].CurrentRegion.Rows.Count
        Arr() = .[b7].Resize(Rws, 18).Value
    End With
    For J = 1 To UBound(Arr())
        If Arr(J, 5) = Target.Value Then
            W = W + 1:                              rArr(W, 1) = W
            rArr(W, 2) = Arr(J, 1):                 rArr(W, 3) = Arr(J, 2)
            rArr(W, 4) = Arr(J, 4):                 rArr(W, 5) = Arr(J, 7)  '? '
            rArr(W, 6) = Arr(J, 9)
            rArr(W, 7) = IIf(Arr(J, 9) > 0, "OK", "-")
            rArr(W, 8) = Arr(J, 15):                rArr(W, 9) = "GPE.COM"
        End If
    Next J
    If W Then
        [A4].Resize(W, 9).Value = rArr():       [f2].Value = Timer() - Tmr
    Else
        [f2].Value = "Nothing!"
    End If
End If
End Sub
Anh code thêm giúp em vừa có thể tìm theo mã vật tư hoặc tên vật tư được không ạ. Cám ơn anh!
 
Upvote 0
Mã vật tu của bạn chưa thể xài được trong công cuộc tìm kiếm; Tạm thời chỉ là vầy:
 
Upvote 0
Chỉ cần thêm kí tự "_" vô mã DM, thì ta có thể thoải mái tìm kiếm theo 1 trong 3 tiêu chi tùy nghi!

(Hơn 1 giờ sau mình sẽ tháo file bài trên)
 

File đính kèm

  • Array.rar
    1.7 MB · Đọc: 44
Upvote 0
Thanks a
 
Upvote 0
Web KT
Back
Top Bottom