页面标题中的名字和姓氏(Microsoft Excel)
大卫正在管理一个专业协会的选举,符合条件的选民名册是一张工作表。大约有1200名合格选民,因此打印输出超过20页。 David的页脚有页脚,这很有帮助。但是,如果他在每页的页眉中可以包含页面的名字和姓氏,那将是很好的选择。
在Excel中,没有本地方法可以做到这一点。但是,在Word中这样做相对容易,因此一种解决方案是将排序后的名称粘贴到Word文档中,然后添加所需的标题以显示名称。
尽管这可以解决问题,但要确保列表的Word版本始终与列表的Excel版本保持同步就变得很痛苦,反之亦然。
如果您决定要在Excel中保留投票者列表的单个版本,则解决此问题的最佳方法是使用宏在标头中插入名字和姓氏。显然,此类宏的代码需要针对工作表中数据的布局进行定制。下面的宏假定名称在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
当您运行宏时,它将逐步浏览工作表的每一页。为页面设置页眉,然后打印单页,然后检查和处理下一页。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(9543)适用于Office 365中的Microsoft Excel 2007、2010、2013、2016、2019和Excel。您可以在此处找到适用于Excel的较旧菜单界面的本技巧的版本:
链接:/ excel-First_and_Last_Names_in_a_Page_Header [页面标题中的名字和姓氏]。