Làm thế nào để lọc dữ liệu trong các sheet excel. (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

truongquangtrong

Thành viên mới
Tham gia
6/1/17
Bài viết
37
Được thích
0
Chào anh/chị.
em đang học tập các ứng dụng trên excel và có câu hỏi muốn hỏi anh/chị.


Nhờ các Anh Chị tư vấn giúp em cách làm lọc dữ liệu trong file đính kèm dưới đây.
Xin mô tả qua 1 chút: mở file INV nhấn nút Button chọn đến file Book1 để lấy dữ liệu
Nhưng code lấy dữ liệu của mình lập lại các sheet đầu. Nhờ các anh hiểu chỉnh giúp.


Mã:
Sub Invoice()
Dim Arr(), dArr(1 To 5000, 1 To 15), tArr(1 To 5000, 1 To 10)
Dim M As Long, O As Long, H As Long, T As Long
Dim I As Long, J As Long, K As Long, N As Long
Dim Filename1 As String, r As Long, Num As Long, Num1 As Long
Dim Ws As Worksheet
On Error Resume Next
Application.ScreenUpdating = False
With Application.FileDialog(1)
        .InitialFileName = ThisWorkbook.Path
        .Title = "Chon file nguon"
        .FilterIndex = 3
        .AllowMultiSelect = False
        Do
            .Show
            If .SelectedItems.Count = 0 Then Exit Sub
            If .SelectedItems(1) = ThisWorkbook.FullName Then MsgBox "Khong chon file nay!"
        Loop Until .SelectedItems(1) <> ThisWorkbook.FullName
        With Workbooks.Open(.SelectedItems(1))
'----------------------------------------------------------------------------------------------------
           Sheet3.Range("A1:K65536").Clear
           'Sheet3.AutoFilterMode = False
 '----------------------------------------------------------------------------------------------------
          For Each Ws In Worksheets
        
           Sheet3.Range("W2") = Ws.Range("A7")
           Arr = Ws.Range(Ws.[B11], Ws.[B5000].End(xlUp)).Resize(, 15).Value
                 For I = 1 To UBound(Arr, 1)
                 If Arr(I, 1) <> "" Then
                     K = K + 1
                     For J = 1 To 10
                     r = Choose(J, 14, 1, 3, 4, 5, 8, 9, 12, 7, 13)
                                       dArr(K, J) = Arr(I, r)
                                        Next
                                         End If
                                         dArr(K, 1) = K
                                         dArr(K, 10) = Arr(I, 7) * Arr(I, 12)
                                           Next
           With Sheet3
             .Range("N1:W384").Copy
             .Range("D65536").End(xlUp)(4).Offset(, -3).PasteSpecial
             .Range("A65536").End(xlUp)(2).Resize(K, 11) = dArr
             End With
            Next Ws


                    .Close False


            End With
               End With
        MsgBox ("KET THUC")
    Application.ScreenUpdating = True
End Sub
Cảm ơn tất cả ạ,

Xem thêm>>> https://internetvietnam.net/
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom