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.
Cảm ơn tất cả ạ,
Xem thêm>>> https://internetvietnam.net/
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
Xem thêm>>> https://internetvietnam.net/
Lần chỉnh sửa cuối: