Xuất dữ liệu từ sheet tổng hợp sang sheet mới theo ngày tháng

Liên hệ QC
Bạn tham khảo, in một lần hết luôn. (Không nên áp dụng).
em cám ơn bác nhiều ạ. sau khi xem code bác viết cho là em thấy mình con đường em phải học còn nhiều lắm ạ. Nhưng bác ơi trang 1 là ngày 1/1/2019 nhưng đến trang 2 là ngày 1/2/2019 đến mấy trang sau là #DIV/0! rồi ạ. Giờ em mới hiểu ý trước của bác ạ. Em thấy phương pháp này không kiểm soát được nội dung in. Em đang mày mò filter vba áp dụng cho vấn đề trên nhưng vẫn là gặp phải vòng lặp ngày tháng.
Bạn thử code này (khi dùng thì bỏ dấu nháy trước sh.printout ra)
Nếu muốn in từ ngày đến ngày thì tùy biến thêm
Mã:
Option Explicit
Sub Test()
    Dim Sh As Worksheet, Rng As Range, i As Long, Arr()
    Dim Dic As Object, Item As Variant
    Application.ScreenUpdating = False
    Set Dic = CreateObject("Scripting.Dictionary")
    Set Sh = Worksheets("IN")
    Set Rng = Sh.Range("A4:H" & Sh.Cells(Rows.Count, "B").End(xlUp).Row)
    Arr = Rng.Offset(, 7).Resize(, 1).Value
    If Sh.AutoFilterMode Then Sh.Cells.AutoFilter
    Rng.AutoFilter
    For i = 2 To UBound(Arr)
        Dic.Item(Format(Arr(i, 1), "dd/mm/yyyy")) = ""
    Next
    For Each Item In Dic.Keys
        Rng.AutoFilter Field:=8, Criteria1:=Item
        'Sh.PrintOut
    Next Item
    Application.ScreenUpdating = True
End Sub
Em cảm ơn bác ạ, code bác viết thật tuyệt vời. Em mới tìm hiểu nên còn nông cạn mong bác thông cảm và chỉ giáo thêm ạ.
Bài đã được tự động gộp:

@Nhattanktnn bác cho em xin sđt, địa chỉ liên lạc để em nói lời cảm ơn ạ.
 
Lần chỉnh sửa cuối:

File đính kèm

Bạn thử code này (khi dùng thì bỏ dấu nháy trước sh.printout ra)
Nếu muốn in từ ngày đến ngày thì tùy biến thêm
Mã:
Option Explicit
Sub Test()
    Dim Sh As Worksheet, Rng As Range, i As Long, Arr()
    Dim Dic As Object, Item As Variant
    Application.ScreenUpdating = False
    Set Dic = CreateObject("Scripting.Dictionary")
    Set Sh = Worksheets("IN")
    Set Rng = Sh.Range("A4:H" & Sh.Cells(Rows.Count, "B").End(xlUp).Row)
    Arr = Rng.Offset(, 7).Resize(, 1).Value
    If Sh.AutoFilterMode Then Sh.Cells.AutoFilter
    Rng.AutoFilter
    For i = 2 To UBound(Arr)
        Dic.Item(Format(Arr(i, 1), "dd/mm/yyyy")) = ""
    Next
    For Each Item In Dic.Keys
        Rng.AutoFilter Field:=8, Criteria1:=Item
        'Sh.PrintOut
    Next Item
    Application.ScreenUpdating = True
End Sub
bác ơi bác em chuyển sang file khác nhưng nó lại lỗi như thế này bác giúp em với ạ
 

File đính kèm

Web KT

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

Back
Top Bottom