更改节标题(Microsoft Excel)
当使用大型工作表时,通常不添加小计,以便您可以按某种逻辑方式将工作表中的信息分组。 (“小计”工具位于“大纲”组中功能区的“数据”选项卡上。)添加小计时,可以指定Excel在全新页面上启动每个组。这对于Excel中的所有类型的报告都非常方便。
如果您在新页面上开始每个组或小计部分,您可能想知道是否存在一种方法来创建自定义标题,每个标题的打印方式都与Word文档中不同部分相似。不幸的是,无法在Excel中执行此操作。但是,您可以创建一个宏来迭代更改标题并打印工作表的每一组。请考虑以下宏:
Sub ChangeSectionHeads() Dim c As Range, rngSection As Range Dim cFirst As Range, cLast As Range Dim rowLast As Long, colLast As Integer Dim r As Long, iSection As Integer Dim iCopies As Variant Dim strCH As String Set c = Range("A1").SpecialCells(xlCellTypeLastCell) rowLast = c.Row colLast = c.Column iCopies = InputBox( _ "Number of Copies", "Changing Section Headers", 1) If iCopies = "" Then Exit Sub Set cFirst = Range("A1") ' initialization start cell For r = 2 To rowLast ' from first row to last row If ActiveSheet.Rows(r).PageBreak = xlPageBreakManual Then Set cLast = Cells(r - 1, colLast) Set rngSection = Range(cFirst, cLast) iSection = iSection + 1 Select Case iSection ' substitute your CenterSection Header data ... Case 1: strCH = "Section 1" Case 2: strCH = "Section 2" ' etc ' Case n: strCH = "Section n" End Select ActiveSheet.PageSetup.CenterHeader = strCH rngSection.PrintOut _ Copies:=iCopies, Collate:=True Set cFirst = Cells(r, 1) End If Next r ' Last Section +++++++++++++++++++++++++++ Set rngSection = Range(cFirst, c) iSection = iSection + 1 ' substitute your Center Header data ... strCH = "Last Section ..." ActiveSheet.PageSetup.CenterHeader = strCH rngSection.PrintOut _ Copies:=iCopies, Collate:=True End Sub
这个宏是完成您想要做的事情的良好起点。首先询问您要为每个部分打印多少份,然后开始遍历每一行以查看在该行之前是否有分页符。
通过查看每行的PageBreak属性来完成实际的行检查。此属性通常设置为xlPageBreakNone,但是当您使用Excel的“分类汇总”功能时,任何在此属性之前设置为xlPageBreakManual的分页符的行。如果您在工作表中手动放置分页符,则该设置将与该设置相同。
如果宏检测到行之前有分页符,则将rngSection范围设置为等于上一组中的行。此外,“选择案例”结构用于设置用于工作表不同部分的不同标题。然后将此标题放在标题的中心位置,并打印由rngSection指定的范围。
在逐步浏览工作表中的所有组之后,将打印最后一个组(不以分页符结尾)。
为了使用此宏,您需要做的就是在“选择案例”结构中指定工作表各部分所需的不同标题。如果需要,还可以更改标题在标题中的放置位置。您需要做的就是将CenterHeader属性更改为LeftHeader或RightHeader。如果需要,还可以使用LeftFooter,CenterFooter和RightFooter。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(9867)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。