Tạo 2 tiêu đề cho 2 bảng tính trong 1 Sheet như thế nào?

Liên hệ QC

vanle33

Thành viên gạo cội
Tham gia
30/10/08
Bài viết
5,913
Được thích
3,979
Giới tính
Nam
Mì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
 

File đính kèm

  • Dot 6.xls
    42.5 KB · Đọc: 77
Các anh, chị có giải pháp nào cho tôi với nhé!
 
Mì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
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 được
Anh em mình cũng đã từng giúp đỡ một thành viên có hỏi câu gần giống của anh,
hôm 7-7 có gặp lại thành viên này thấy bảo vẫn chưa giải quyết được
nếu khó quá thì anh có thể tách 2 cái bảng tính ấy riêng biệt thành 2 sheet sẽ lặp lại được 2 tiêu đề
mà tách thành 3 sheet thì lặp được 3 tiêu đề
Còn bố trí các bảng ấy trên cùng 1 sheet thì in chọn vùng in thích hợp và vào thay đổi tiêu đề cần lặp lại
 
Lần chỉnh sửa cuối:
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.
 
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.

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 = ???
 
Lần chỉnh sửa cuối:
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 = ???
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
 
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 invù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?
 
1) Mình muốn hiện lên 1 hộp thông báo chọn vùng invù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?

Đến đây bạn có thể tự tạo form in dữ liệu , hoặc sử dụng luôn form của excel :
Mã:
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
 
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
Đây là 1 giải pháp đúng theo yêu cầu bài #1 (GIẢI PHÁP 1)
Sẽ không phải sửa lại code #5 mỗi lần cần in.
Bạn hungpecc1 có thể sửa code để mình in 1 lần thì ra 2 tiêu đề khác nhau, tiêu đề 1 nằm ở dòng 21:22, tiêu đề 2 nằm dòng 66:67
Giải pháp mình đề cập ở bài #7 là giải pháp tạm thời (GIẢI PHÁP 2)
 
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

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
 
Lần chỉnh sửa cuối:
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"

.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ỉ
 
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"

.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ỉ

Tạ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ỉ ?
 
Tạ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ỉ ?
Biến phụ ấy mình đặt là Name
Cảm ơn anh Hungpecc1
Sub Macro1()
With Application
.PrintCommunication = False
With .ActiveSheet.PageSetup
.PrintTitleRows = "tieude1"
.PrintArea = "vungin1"
.PaperSize = xlPaperA4
End With
.PrintCommunication = True
ActiveSheet.PrintPreview 'PrintOut
'=============================
.PrintCommunication = False
With .ActiveSheet.PageSetup
.PrintTitleRows = "TieuDe2"
.PrintArea = "vungin2"
.PaperSize = xlPaperA4
End With
.PrintCommunication = True
ActiveSheet.PrintPreview 'PrintOut
ActiveSheet.PageSetup.PrintArea = ""


End With
End Sub

Em Đang để chế độ xem trước khi in
muốn in thì thay
ActiveSheet.PrintPreview
bằng
ActiveSheet.PrintOut
 

File đính kèm

  • LapLai 2 Tieu De.xlsm
    37.8 KB · Đọc: 76
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom