[Giúp đỡ] Lọc dữ liệu và copy data advance filter vba (1 người xem)

Liên hệ QC

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

sonyfans

Thành viên mới
Tham gia
21/10/19
Bài viết
18
Được thích
4
Xin chào mọi người.
Mình có 1 file dữ liệu mình đang tập làm về advance filter nên muốn nhờ mọi người trợ giúp mình bài này.
Mình muốn lọc dữ liệu báo cáo theo ngày của sheet 5 lấy thông tin data từ sheet 4 copy qua.
Giả sử mình muốn lọc ngày 15 đến ngày 16 thì ở bảng sheet 4 nó sẽ copy những cột có liên quan sang sheet 5 là cột (A6:G6)
Cảm ơn mọi người đã quan tâm và giúp đỡ ạ!
 

File đính kèm

Thật sự chưa biết bạn muốn lọc từ đâu sang đâu luôn!
 
Upvote 0
Thật sự chưa biết bạn muốn lọc từ đâu sang đâu luôn!
Mình đang muốn lọc báo cáo ở Sheet ThongtinSC sang BCSuaChua ạ. Mình đang học về cái hàm advanced Filter này mà làm toàn ko lọc ra được =.= ko biết có phương pháp lọc thông tin báo cáo nào khác ko ạ? Cảm ơn bạn đã đọc bài <3
 
Upvote 0
Dùng AdvancedFilter vẫn được, chỉ mỗi tội phải thiết kế lại như trong file;
Cách khác cũng có nhưng cao siêu lắm!. . .
 

File đính kèm

Upvote 0
cho mình biết lý do vì sao phải thêm 1 cột vào không ạ? :D
 
Upvote 0
Thêm cho vui thôi & chúc bạn Vui nhân cuối tuần! :D
 
Upvote 0
Thêm cho vui thôi & chúc bạn Vui nhân cuối tuần! :D
cảm ơn bạn nhiều nhé. :D
Bài đã được tự động gộp:

Dùng AdvancedFilter vẫn được, chỉ mỗi tội phải thiết kế lại như trong file;
Cách khác cũng có nhưng cao siêu lắm!. . .
có thể thử 1 cách khác để mình tham khảo đc không bạn? :3
 
Lần chỉnh sửa cuối:
Upvote 0
PHP:
Sub ArrayThayAdvancedFilter()
Dim Rws As Long, W As Integer, J As Long, Dm As Byte
Dim Arr()

Sheets("BCSuaChua").Select
With Sheets("ThongTinSC")
    Rws = .[c3].CurrentRegion.Rows.Count
3    ReDim dArr(1 To Rws, 1 To 10)
    Arr() = .[C4].Resize(Rws, 9).Value
    For J = 1 To UBound(Arr())
        If Arr(J, 1) >= [B2].Value And Arr(J, 1) <= [b3].Value Then
1            W = W + 1:                                              dArr(W, 1) = W
            For Dm = 2 To 9
                dArr(W, Dm) = Arr(J, Dm)
            Next Dm
        End If
    Next J
End With
2 If W Then MsgBox W
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
PHP:
Sub ArrayThayAdvancedFilter()
Dim Rws As Long, W As Integer, J As Long, Dm As Byte
Dim Arr()

Sheets("BCSuaChua").Select
With Sheets("ThongTinSC")
    Rws = .[c3].CurrentRegion.Rows.Count
    ReDim dArr(1 To Rws, 1 To 10)
    Arr() = .[C4].Resize(Rws, 9).Value
    For J = 1 To UBound(Arr())
        If Arr(J, 1) >= [B2].Value And Arr(J, 1) <= [b3].Value Then
            W = W + 1:                                              dArr(W, 1) = W
            For Dm = 2 To 9
                dArr(W, Dm) = Arr(J, Dm)
            Next Dm
        End If
    Next J
End With
If W Then MsgBox W
End Sub
Cảm ơn bạn nhiều. Woa nhìn đúng là hoa mắt thật ^^
mình vừa chạy thì bị trường hợp là khi bảng dữ liệu được copy sang nó ko chuyển về dòng đầu tiên như advanced filter mà nó đến dòng nó bê nguyên thứ tự dòng đó sang luôn. thành ra nếu tra những ngày dưới nó sẽ trắng ở những dòng đầu tiên. =.=
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn xem lại các dòng lệnh bổ sung của bạn đi; Mình thấy 2 macro cho cùng 1 kết cục mà!
 
Upvote 0
Bạn chép nguyên macro của mình nêu ở #11 thì không có lỗi; Nhưng macro mình viết còn chưa nạp dữ liệu thu thập được từ mảng lên trang tính
(Mình đã thêm số cho vài dòng lệnh, để bạn đối chiếu:)
Thứ nhất: Dòng 1 ở mệnh đề thứ 2 là để nhập số thứ tự dòng của mảng (trong tham biến W)
Nhưng trang để nhận kết quả từ mảng thiết kế chưa phù hợp; Lý ra cột A phải là cột STT, chứ không phải để chứa n65i dung mã hàng như bây giờ trên file của bạn
D2: Chỉ đang hiện MsgBox cho bạn biết số dòng dữ liệu có trong mảng mà thôi;
Muốn mảng này được đưa lên trang tính bạn cần bổ sung các câu lệnh như sau:
PHP:
2 If W Then
    [A7].Resize(W, 9).Value = dArr()
End If
' . . . . . . '

(3) Mình khai báo mảng dư 1 cột; Chuyện này sẽ xóa cột thứ 10 mà bạn đã cài công thức; Nên sửa lại thàng số 9 dùn nha.

Chúc cuối tuần vui vẻ!
 
Upvote 0
ca
Bạn chép nguyên macro của mình nêu ở #11 thì không có lỗi; Nhưng macro mình viết còn chưa nạp dữ liệu thu thập được từ mảng lên trang tính
(Mình đã thêm số cho vài dòng lệnh, để bạn đối chiếu:)
Thứ nhất: Dòng 1 ở mệnh đề thứ 2 là để nhập số thứ tự dòng của mảng (trong tham biến W)
Nhưng trang để nhận kết quả từ mảng thiết kế chưa phù hợp; Lý ra cột A phải là cột STT, chứ không phải để chứa n65i dung mã hàng như bây giờ trên file của bạn
D2: Chỉ đang hiện MsgBox cho bạn biết số dòng dữ liệu có trong mảng mà thôi;
Muốn mảng này được đưa lên trang tính bạn cần bổ sung các câu lệnh như sau:
PHP:
2 If W Then
    [A7].Resize(W, 9).Value = dArr()
End If
' . . . . . . '

(3) Mình khai báo mảng dư 1 cột; Chuyện này sẽ xóa cột thứ 10 mà bạn đã cài công thức; Nên sửa lại thàng số 9 dùn nha.

Chúc cuối tuần vui vẻ!
Thanks bạn đã giải thích rõ ràng ạ. Chúc bạn có ngày cuối tuần vui vẻ ^^
 
Upvote 0
Bạn chép nguyên macro của mình nêu ở #11 thì không có lỗi; Nhưng macro mình viết còn chưa nạp dữ liệu thu thập được từ mảng lên trang tính
(Mình đã thêm số cho vài dòng lệnh, để bạn đối chiếu:)
Thứ nhất: Dòng 1 ở mệnh đề thứ 2 là để nhập số thứ tự dòng của mảng (trong tham biến W)
Nhưng trang để nhận kết quả từ mảng thiết kế chưa phù hợp; Lý ra cột A phải là cột STT, chứ không phải để chứa n65i dung mã hàng như bây giờ trên file của bạn
D2: Chỉ đang hiện MsgBox cho bạn biết số dòng dữ liệu có trong mảng mà thôi;
Muốn mảng này được đưa lên trang tính bạn cần bổ sung các câu lệnh như sau:
PHP:
2 If W Then
    [A7].Resize(W, 9).Value = dArr()
End If
' . . . . . . '

(3) Mình khai báo mảng dư 1 cột; Chuyện này sẽ xóa cột thứ 10 mà bạn đã cài công thức; Nên sửa lại thàng số 9 dùn nha.

Chúc cuối tuần vui vẻ!
Bác Sa có số tuổi gấp 2,5 lần tuổi bạn.:D.
Dạ con cảm ơn bác @SA_DQ đã giúp đỡ chia sẻ cho con ạ. Con cảm ơn bác nhiều. ^^ Chúc bác một ngày cuối tuần vui vẻ ạ <3
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom