Nhờ hỗ trợ in tự động theo điều kiện ngày tháng năm

Liên hệ QC

TỜ MỜ SÁNG

Thành viên mới
Tham gia
10/4/21
Bài viết
4
Được thích
0
Cám ơn AD đã duyệt bài!
Cám ơn các bác đã quan tâm!
Mình cần hỗ trợ như sau:
Từ 1 sheet có dữ liệu của gần 1 năm, nay mình muốn in tự động theo từng ngày( theo cột A) và có tiêu đề (dòng 1) như nhau, và in từ cột D đến P vừa theo khổ ngang A4 (không giới hạn trang dọc).Capture.PNG
 

File đính kèm

  • QC 2020.xlsx
    1.4 MB · Đọc: 6
Lần chỉnh sửa cuối:
Thử code này xem thế nào bạn:
PHP:
Sub AutoPrint()
Dim i, mx, mn
mx = Application.RoundDown(Application.Max(Range("D:D")), 0)
mn = Application.RoundDown(Application.Min(Range("D:D")), 0)
For i = mn To mn
    ActiveSheet.Range("$A$1:$P$18385").AutoFilter Field:=1, Criteria1:=Format(i, "dd-mm-yy")
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Next
End Sub
 
Thử code này xem thế nào bạn:
PHP:
Sub AutoPrint()
Dim i, mx, mn
mx = Application.RoundDown(Application.Max(Range("D:D")), 0)
mn = Application.RoundDown(Application.Min(Range("D:D")), 0)
For i = mn To mn
    ActiveSheet.Range("$A$1:$P$18385").AutoFilter Field:=1, Criteria1:=Format(i, "dd-mm-yy")
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Next
End Sub
Mã chạy được, nhưng chỉ in đúng 1 ngày đầu ạ, bác có thể hỗ trợ chỉnh lại code để có thể in tiếp tục không ạ, cám ơn bác rất nhiều!
 
Mã chạy được, nhưng chỉ in đúng 1 ngày đầu ạ, bác có thể hỗ trợ chỉnh lại code để có thể in tiếp tục không ạ, cám ơn bác rất nhiều!
Ah, sorry bạn, lúc test mình thử cho mã đầu thôi, quên chưa sửa hết. Bạn thay đoạn for i=mn to mn thành for i=mn to mx nhé.
PHP:
Sub AutoPrint()
Dim i, mx, mn
mx = Application.RoundDown(Application.Max(Range("D:D")), 0)
mn = Application.RoundDown(Application.Min(Range("D:D")), 0)
For i = mn To mx
    ActiveSheet.Range("$A$1:$P$18385").AutoFilter Field:=1, Criteria1:=Format(i, "dd-mm-yy")
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Next
End Sub
 
Ah, sorry bạn, lúc test mình thử cho mã đầu thôi, quên chưa sửa hết. Bạn thay đoạn for i=mn to mn thành for i=mn to mx nhé.
PHP:
Sub AutoPrint()
Dim i, mx, mn
mx = Application.RoundDown(Application.Max(Range("D:D")), 0)
mn = Application.RoundDown(Application.Min(Range("D:D")), 0)
For i = mn To mx
    ActiveSheet.Range("$A$1:$P$18385").AutoFilter Field:=1, Criteria1:=Format(i, "dd-mm-yy")
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Next
End Sub
CÁM ƠN BÁC NHIỀU LẮM, VẤN ĐỀ ĐÃ ĐƯỢC THÔNG!
 
Ah, sorry bạn, lúc test mình thử cho mã đầu thôi, quên chưa sửa hết. Bạn thay đoạn for i=mn to mn thành for i=mn to mx nhé.
PHP:
Sub AutoPrint()
Dim i, mx, mn
mx = Application.RoundDown(Application.Max(Range("D:D")), 0)
mn = Application.RoundDown(Application.Min(Range("D:D")), 0)
For i = mn To mx
    ActiveSheet.Range("$A$1:$P$18385").AutoFilter Field:=1, Criteria1:=Format(i, "dd-mm-yy")
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Next
End Sub
Bác ơi, mình còn vấn đề này, lúc đầu không nói rõ yêu cầu, file này có những ngày không thực hiện, nên có thể không liền ngày, lúc này lệnh in vẫn thực hiện, và chỉ in mỗi tiêu đề, mình cần bỏ qua những ngày không có dữ liệu được không ạ?
 
Bác ơi, mình còn vấn đề này, lúc đầu không nói rõ yêu cầu, file này có những ngày không thực hiện, nên có thể không liền ngày, lúc này lệnh in vẫn thực hiện, và chỉ in mỗi tiêu đề, mình cần bỏ qua những ngày không có dữ liệu được không ạ?
Như này nhé bạn!
PHP:
Sub AutoPrint()
Dim i, mx, mn
mx = Application.RoundDown(Application.Max(Range("D:D")), 0)
mn = Application.RoundDown(Application.Min(Range("D:D")), 0)
For i = mn To mx
    If Application.CountIf(Range("A:A"), CStr(Format(i, "dd-mm-yy"))) > 0 Then
        ActiveSheet.Range("$A$1:$P$18385").AutoFilter Field:=1, Criteria1:=Format(i, "dd-mm-yy")
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    End If
Next
End Sub
 
Web KT
Back
Top Bottom