Em xin chào các Thầy ! Em xin các Thầy giúp em canh trang tự động vừa đúng 1 trang A4 bằng VBA (do thêm dữ liệu vào cột hoặc dòng kế tiếp làm tràn trang in ).
Em đã test bằng 2 cách đều cho kết quả không đạt yêu cầu. Em test như sau:
Trước hết em cho tự động Set Print_Area vùng cần in, sau đó em record macro
Cách 1:
Vào Page Setup --> chọn Fit to --> chọn Ok --> được code này:
Khi cho test lại code, code này chạy đúng nhưng rất nặng nề, chậm chạp ,em không biết phải xử lý ra sao để code chạy nhanh.
Cách 2:
Vào PrintPreview --> Print Break Preview --> kéo vạch kẻ đứt đoạn màu xanh( có 2 vạch đứng và ngang chính là 2 vạch ngắt cột và ngắt dòng) đến đường biên màu xanh liền nét (cũng chính là mép phải và mép dưới của vùng Print_Area) ,em được code này
Khi cho chạy lại code --> hiện thông báo lổi này
Vậy phải sửa code sao cho: Nếu vạch đứt quảng( vạch ngắt cột và ngắt dòng) nằm trong phạm vi vùng Print_Area thì 2 dòng code này chạy.Đây chỉ là suy nghỉ của em còn thực tế phải làm thế nào em không biết nũa.
Rất mong các Thầy trợ giúp em cám ơn vô cùng.
Em đã test bằng 2 cách đều cho kết quả không đạt yêu cầu. Em test như sau:
Trước hết em cho tự động Set Print_Area vùng cần in, sau đó em record macro
Cách 1:
Vào Page Setup --> chọn Fit to --> chọn Ok --> được code này:
Mã:
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$66"
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = "mot trang"
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
End With
Cách 2:
Vào PrintPreview --> Print Break Preview --> kéo vạch kẻ đứt đoạn màu xanh( có 2 vạch đứng và ngang chính là 2 vạch ngắt cột và ngắt dòng) đến đường biên màu xanh liền nét (cũng chính là mép phải và mép dưới của vùng Print_Area) ,em được code này
Mã:
ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
ActiveSheet.HPageBreaks(1).DragOff Direction:=xlDown, RegionIndex:=1
Khi cho chạy lại code --> hiện thông báo lổi này
Vậy phải sửa code sao cho: Nếu vạch đứt quảng( vạch ngắt cột và ngắt dòng) nằm trong phạm vi vùng Print_Area thì 2 dòng code này chạy.Đây chỉ là suy nghỉ của em còn thực tế phải làm thế nào em không biết nũa.
Rất mong các Thầy trợ giúp em cám ơn vô cùng.
File đính kèm
Lần chỉnh sửa cuối: