Về việc tuỳ chọn in Print Titles cho các trang trong cùng 1 sheet thì em đang gặp khó khăn với vấn đề này.
1. Nếu chỉ bỏ Print Titles tại trang cuối thì là dùng mã vba, có thể xử lý được, các bước là
- Chọn hàng đặt Print Titles
- Tìm tổng số trang trong sheet 'tst'
- Set từ trang 1 đến (tst -1) là có tiêu đề và in
- Set trang 'tst' tiêu đề = "" và in (trang cuối)
Đoạn mã code đó là:
2. Bài toán khó khăn hơn em đang gặp phải dựa vào cách tương tự trên nhưng cho tuỳ chọn một số trang trong sheet không in Print Titles.
Ví dụ có 48 trang thì chọn các trang 3,6,9,12,15,18,22,25,43 là không in Print Titles
Em có mày mò ra được đoạn mã này thì mới một số trang ngắn thì mã chạy ổn, nhưng với số lượng trang lớn thì lại bị sai.
Ví dụ file em đính kèm sau đây thì các trang không in tiêu đề mong muốn là: 3,6,9,12,15,18,22,25,42. Nhưng khi chạy lệnh thì bị sai như trang 2, 4, 5 cũng không in ra tiêu đề. Có thể là khi set tiêu đề cho toàn bộ trang thì tổng số trang là 48 và khi set tiêu đề ="" thì tổng số trang lại giảm đi.
Vậy em xin góp ý của các bác để xử lý vấn đề này ạ!
Em cảm ơn các bác!
Mã code trong file đính kèm:
File đính kèm:
1. Nếu chỉ bỏ Print Titles tại trang cuối thì là dùng mã vba, có thể xử lý được, các bước là
- Chọn hàng đặt Print Titles
- Tìm tổng số trang trong sheet 'tst'
- Set từ trang 1 đến (tst -1) là có tiêu đề và in
- Set trang 'tst' tiêu đề = "" và in (trang cuối)
Đoạn mã code đó là:
Bash:
Sub Print_Titles_with_Row_Selection()
Dim mPages As Long, I As Integer, mRange As Range
On Error Resume Next
mPages = ActiveSheet.PageSetup.Pages.Count
Set mRange = Application.InputBox("Select Title Rows to Repeat:", "Print Titles Except Last Page", , , , , , Type:=8)
If mRange Is Nothing Then Exit Sub
On Error Resume Next
If mPages > 0 Then
With ActiveSheet.PageSetup
.PrintTitleRows = mRange.AddressLocal
ActiveSheet.PrintOut from:=1, To:=mPages - 1
.PrintTitleRows = ""
ActiveSheet.PrintOut from:=mPages, To:=mPages
End With
End If
End Sub
Ví dụ có 48 trang thì chọn các trang 3,6,9,12,15,18,22,25,43 là không in Print Titles
Em có mày mò ra được đoạn mã này thì mới một số trang ngắn thì mã chạy ổn, nhưng với số lượng trang lớn thì lại bị sai.
Ví dụ file em đính kèm sau đây thì các trang không in tiêu đề mong muốn là: 3,6,9,12,15,18,22,25,42. Nhưng khi chạy lệnh thì bị sai như trang 2, 4, 5 cũng không in ra tiêu đề. Có thể là khi set tiêu đề cho toàn bộ trang thì tổng số trang là 48 và khi set tiêu đề ="" thì tổng số trang lại giảm đi.
Vậy em xin góp ý của các bác để xử lý vấn đề này ạ!
Em cảm ơn các bác!
Mã code trong file đính kèm:
Bash:
Sub Print_Titles_with_Row_Selection()
Dim mPages As Long, I As Integer, mRange As Range
On Error Resume Next
mPages = ActiveSheet.PageSetup.Pages.Count
Set mRange = Application.InputBox("Select Title Rows to Repeat:", "Print Titles Except Last Page", , , , , , Type:=8)
If mRange Is Nothing Then Exit Sub
On Error Resume Next
If mPages > 0 Then
With ActiveSheet.PageSetup
.PrintTitleRows = mRange.AddressLocal
ActiveSheet.PrintOut from:=1, To:=mPages - 1
.PrintTitleRows = ""
ActiveSheet.PrintOut from:=mPages, To:=mPages
End With
End If
End Sub
Bạn cần đăng nhập để thấy link