Ändern von Abschnittsüberschriften (Microsoft Excel)
Wenn Sie mit großen Arbeitsblättern arbeiten, ist es nicht ungewöhnlich, Zwischensummen hinzuzufügen, damit Sie Informationen im Arbeitsblatt auf logische Weise gruppieren können. (Das Zwischensummen-Tool befindet sich auf der Registerkarte Daten des Menübands in der Gliederungsgruppe.) Wenn Sie Zwischensummen hinzufügen, können Sie festlegen, dass Excel jede Gruppe auf einer brandneuen Seite startet. Dies ist sehr praktisch für alle Arten von Berichten in Excel.
Wenn Sie jede Gruppe oder jeden Zwischensummenabschnitt auf einer neuen Seite starten, fragen Sie sich möglicherweise, ob es eine Möglichkeit gibt, benutzerdefinierte Überschriften zu erstellen, die für jeden Abschnitt unterschiedlich gedruckt werden, ähnlich wie Sie dies mit verschiedenen Abschnitten in einem Word-Dokument tun können. Leider gibt es in Excel keine Möglichkeit, dies zu tun. Sie können jedoch ein Makro erstellen, das die Überschrift iterativ ändert und jede Gruppe eines Arbeitsblatts druckt. Betrachten Sie das folgende Makro:
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
Dieses Makro ist ein guter Anfang, um das zu erreichen, was Sie tun möchten. Zunächst werden Sie gefragt, wie viele Kopien Sie von jedem Abschnitt drucken möchten, und dann wird jede Zeile durchgesehen, um festzustellen, ob vor dieser Zeile ein Seitenumbruch vorliegt.
Die eigentliche Zeilenprüfung erfolgt anhand der PageBreak-Eigenschaft jeder Zeile. Diese Eigenschaft wird normalerweise auf xlPageBreakNone festgelegt. Wenn Sie jedoch die Zwischensummenfunktion von Excel verwenden, wird jede Zeile mit einem Seitenumbruch vor dieser Eigenschaft auf xlPageBreakManual festgelegt. Dies ist die gleiche Einstellung, die auftreten würde, wenn Sie Seitenumbrüche manuell in Ihr Arbeitsblatt einfügen würden.
Wenn das Makro feststellt, dass vor einer Zeile ein Seitenumbruch liegt, wird der Bereich rngSection gleich den Zeilen in der vorherigen Gruppe gesetzt. Außerdem wird die Struktur „Fall auswählen“ verwendet, um die verschiedenen Überschriften festzulegen, die für die verschiedenen Abschnitte des Arbeitsblatts verwendet werden. Diese Überschrift wird dann in der Mittelposition der Kopfzeile platziert und der durch rngSection angegebene Bereich wird gedruckt.
Nachdem Sie alle Gruppen im Arbeitsblatt durchlaufen haben, wird die letzte Gruppe (die nicht mit einem Seitenumbruch endet) gedruckt.
Um dieses Makro verwenden zu können, müssen Sie lediglich in der Struktur „Fall auswählen“ die verschiedenen Überschriften angeben, die Sie für jeden Abschnitt des Arbeitsblatts benötigen. Falls gewünscht, können Sie auch ändern, wo die Überschrift in der Kopfzeile platziert wird. Sie müssen lediglich die CenterHeader-Eigenschaft in LeftHeader oder RightHeader ändern. Falls gewünscht, können Sie auch LeftFooter, CenterFooter und RightFooter verwenden.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (9867) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.