دیوید در حال برگزاری انتخابات برای یک جامعه حرفه ای است و فهرست رای دهندگان واجد شرایط یک برگه است. تقریباً 1200 واجد شرایط رای دادن وجود دارد، بنابراین چاپ بیش از بیست صفحه است. دیوید یک پاورقی با شماره صفحه دارد - که مفید است - اما اگر بتواند در سرصفحه هر صفحه، نام صفحه و نام خانوادگی را در صفحه داشته باشد، عالی خواهد بود.
در اکسل هیچ راه بومی برای انجام این کار وجود ندارد. با این حال، این یک ضربه نسبی برای انجام در Word است، بنابراین یک راه حل این است که نام های مرتب شده را در یک سند Word قرار دهید و سپس هدر مورد نظر را که نام ها را نشان می دهد اضافه کنید. در حالی که این کار می تواند کارساز باشد، مطمئن شدن از اینکه نسخه Word لیست همیشه با نسخه اکسل لیست همگام است، دردسرساز می شود و بالعکس.
اگر تصمیم دارید که یک نسخه از لیست رای دهندگان را در اکسل نگه دارید، بهترین راه برای حل مشکل استفاده از یک ماکرو برای درج نام و نام خانوادگی در هدر است. بدیهی است که کد چنین ماکرویی باید مطابق با چیدمان داده ها در کاربرگ شما تنظیم شود. ماکرو زیر فرض میکند که نامها در ستونهای A تا C هستند و نامهای خانوادگی (آنهایی که میخواهید برای سرصفحهها استفاده کنید) در ستون 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
هنگامی که ماکرو را اجرا می کنید، از هر صفحه از کاربرگ عبور می کند. سرصفحه ها برای صفحه تنظیم می شوند، سپس تک صفحه چاپ می شود و سپس صفحه بعدی بررسی و پردازش می شود.