vanle33
Thành viên gạo cội




- Tham gia
- 30/10/08
- Bài viết
- 5,951
- Được thích
- 4,000
- Giới tính
- Nam
Theo em là việc lặp lại nhiều hơn 1 tiêu đề đầu trang với nội dung tiêu đề lặp lại khác nhau không sử dụng VBA là không thực hiện đượcMình muốn
1) ở page 3 không thấy dòng tiêu đề của page 1 (dòng 21, 22).
2) Lặp 1 tiêu đề khác từ page 3 là dòng 65, 66
Mong các bạn hướng dẫn mình cách làm 2 yêu cầu trên (không sử dụng VBA được không a?)
Thanks
Nếu bài #1 làm bằng VBA thì có cách nào không, kính thưa các cao thủ VBA.
Sub Macro1()
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = "$21:$22" '<-------------- Vùng tiêu đề
.PrintArea = "$A$1:$H$60" '<---------------- Vùng dữ liệu cần in
.PaperSize = xlPaperA4
Application.PrintCommunication = True '<---------- Truyền thông tin pagelayout đến máy in
ActiveSheet.PrintOut '<------ in
End With
End Sub
Theo em thì vẫn chưa đúng ý bài 1 anh ạthử vầy xem :
Mã:Sub Macro1() Application.PrintCommunication = False With ActiveSheet.PageSetup .PrintTitleRows = "$21:$22" '<-------------- Vùng tiêu đề .PrintArea = "$A$1:$H$60" '<---------------- Vùng dữ liệu cần in .PaperSize = xlPaperA4 Application.PrintCommunication = True '<---------- Truyền thông tin pagelayout đến máy in ActiveSheet.PrintOut '<------ in End With End Sub
Nếu muốn in page 3 với tiêu đề khác thì lại chạy lại code trên với .PrintArea = $A$60:$H$120 và .printTilerows = ???
1) Mình muốn hiện lên 1 hộp thông báo chọn vùng in và vùng tiêu đề thì làm thế nào vậy bạn?thử vầy xem :
Mã:Sub Macro1() Application.PrintCommunication = False With ActiveSheet.PageSetup .PrintTitleRows = "$21:$22" '<-------------- Vùng tiêu đề .PrintArea = "$A$1:$H$60" '<---------------- Vùng dữ liệu cần in .PaperSize = xlPaperA4 Application.PrintCommunication = True '<---------- Truyền thông tin pagelayout đến máy in ActiveSheet.PrintOut '<------ in End With End Sub
Nếu muốn in page 3 với tiêu đề khác thì lại chạy lại code trên với .PrintArea = $A$60:$H$120 và .printTilerows = ???
1) Mình muốn hiện lên 1 hộp thông báo chọn vùng in và vùng tiêu đề thì làm thế nào vậy bạn?
2) Sau khi làm được bước 1 ở trên thì mình muốn hiện 1 hộp thông báo chọn máy in và số lượng bản in thì sửa code thế nào vậy bạn?
Sub Macro1()
With Application
.PrintCommunication = False
With .ActiveSheet.PageSetup
.PrintTitleRows = "$21:$22"
.PrintArea = "$A$1:$H$60"
.PaperSize = xlPaperA4
End With
.PrintCommunication = True
.Dialogs(xlDialogPrint).Show
.Dialogs(xlDialogPageSetup).Show
End With
End Sub
Đây là 1 giải pháp đúng theo yêu cầu bài #1 (GIẢI PHÁP 1)Theo em thì vẫn chưa đúng ý bài 1 anh ạ
Em hiểu rằng anh Vanle33 muốn lặp lại nhiều tiêu đề
Em ví dụ
10 trang đầu lặp lại tiêu đề dòng 20 và 21
15 trang tiếp lặp lại tiêu đề dòng 150 và 160
trong 1 lần in hoặc xem trước khi in đến phần nào thì ra đúng tiêu đề của phần ấy
Theo em thì vẫn chưa đúng ý bài 1 anh ạ
Em hiểu rằng anh Vanle33 muốn lặp lại nhiều tiêu đề
Em ví dụ
10 trang đầu lặp lại tiêu đề dòng 20 và 21
15 trang tiếp lặp lại tiêu đề dòng 150 và 160
trong 1 lần in hoặc xem trước khi in đến phần nào thì ra đúng tiêu đề của phần ấy
Sub Macro1()
With Application
.PrintCommunication = False
With .ActiveSheet.PageSetup
.PrintTitleRows = "$21:$22"
.PrintArea = "$A$1:$H$60"
.PaperSize = xlPaperA4
End With
.PrintCommunication = True
Activesheet.Printout
'=============================
.PrintCommunication = False
With .ActiveSheet.PageSetup
.PrintTitleRows =[COLOR=#ff0000] "$66:$67"[/COLOR]
.PrintArea = "[COLOR=#ff0000]$A$60:$H$600"[/COLOR]
.PaperSize = xlPaperA4
End With
.PrintCommunication = True
Activesheet.Printout
End With
End Sub
nếu mà cụ thể như vậy thì code có thể viết như sau :
Mã:Sub Macro1() With Application .PrintCommunication = False With .ActiveSheet.PageSetup .PrintTitleRows = "$21:$22" .PrintArea = "$A$1:$H$60" .PaperSize = xlPaperA4 End With .PrintCommunication = True Activesheet.Printout '============================= .PrintCommunication = False With .ActiveSheet.PageSetup .PrintTitleRows =[COLOR=#ff0000] "$66:$67"[/COLOR] .PrintArea = "[COLOR=#ff0000]$A$60:$H$600"[/COLOR] .PaperSize = xlPaperA4 End With .PrintCommunication = True Activesheet.Printout End With End Sub
Mình cũng không rành mấy vụ in ấn này đâu, cứ làm tay record Macro --> rồi edit thôi, cũng hên xui
hoặc hiện thông báo printer như code #8
Em thì có biết Record Macro rồi nhưng Edit nó thì rất khó
Vấn đề này coi như anh hùng giải quyết tương đối ổn rồi
theo em thì cái chỗ này
.PrintTitleRows = "$21:$22" .PrintArea = "$A$1:$H$60"
và
.PrintTitleRows = "$66:$67"
.PrintArea = "$A$60:$H$600"
cho 4 cái dòng kia động đậy 1 chút không mỗi khi chèn thêm dòng vào bảng tính thì lại phải sửa lại địa chỉ
có thể đặt name cho
tieude1 và vungin1
tieude2 và vungin2
thay cho cái tuyệt đối kia không anh nhỉ
Biến phụ ấy mình đặt là NameTạo thêm 1 biến phụ tham chiếu đến vùng đó thay vì dùng giá trị tuyệt đối đó được không anh nhỉ ?