Tên và Họ trong Tiêu đề Trang (Microsoft Excel)
David đang điều hành một cuộc bầu cử cho một xã hội nghề nghiệp và danh sách các cử tri đủ điều kiện là một bảng tính. Có khoảng 1.200 cử tri đủ điều kiện, vì vậy bản in dài hơn hai mươi trang. David có một phần chân trang với số trang — điều này rất hữu ích — nhưng sẽ thật tuyệt nếu cậu ấy có thể có tên đầu trang và họ trên trang trong đầu trang của mỗi trang.
Trong Excel không có cách nào để làm điều này. Tuy nhiên, đây là một việc tương đối dễ thực hiện trong Word, vì vậy một giải pháp là dán các tên đã sắp xếp vào tài liệu Word và sau đó thêm tiêu đề mong muốn hiển thị tên.
Mặc dù điều này có thể hoạt động, nhưng sẽ trở nên khó khăn khi đảm bảo rằng phiên bản Word của danh sách luôn đồng bộ với phiên bản Excel của danh sách và ngược lại.
Nếu bạn quyết định muốn giữ một phiên bản duy nhất của danh sách cử tri trong Excel, thì cách tốt nhất để giải quyết vấn đề là sử dụng macro để chèn họ và tên vào tiêu đề. Mã của macro như vậy, rõ ràng, sẽ cần được điều chỉnh cho phù hợp với bố cục của dữ liệu trong trang tính của bạn. Macro sau đây giả định rằng các tên nằm trong cột A đến C, với họ (những người bạn muốn sử dụng cho tiêu đề) nằm trong cột C.
Sub PrintNamesInHeader() Dim iPages As Integer Dim iPage As Integer Dim iHorPgs As Integer Dim iHP As Integer Dim iHPNext As Integer Dim iCol As Integer Dim iColLast As Integer Dim lRow As Long Dim lRowLast As Long Dim sPrtArea As String iCol = 1 'Col A iColLast = 3 'Col C With ActiveSheet iPages = ExecuteExcel4Macro("Get.Document(50)") iHorPgs = .HPageBreaks.Count + 1 sPrtArea = .PageSetup.PrintArea For iPage = 1 To iPages iHP = ((iPage - 1) Mod iHorPgs) iHPNext = iHP + 1 If iHP = 0 Then If sPrtArea = "" Then lRow = 1 Else lRow = .Range(sPrtArea).Cells(1).Row End If Else lRow = .HPageBreaks(iHP).Location.Row End If If iHPNext > .HPageBreaks.Count Then lRowLast = .Cells(lRow, iColLast).End(xlDown).Row Else lRowLast = .HPageBreaks(iHPNext).Location.Row - 1 End If .PageSetup.LeftHeader = .Cells(lRow, iCol).Value & _ " - " & .Cells(lRowLast, iColLast) .PrintOut From:=iPage, To:=iPage, preview:=True Next End With End Sub
Khi bạn chạy macro, macro sẽ chuyển qua từng trang của trang tính. Các tiêu đề được đặt cho trang, sau đó trang đơn được in, sau đó trang tiếp theo được kiểm tra và xử lý.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (9542) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: