Michelle hat ein langes Arbeitsblatt, mit dem sie arbeitet. Wenn sie die Druckvorschau für das Arbeitsblatt verwendet, ist die im Dialogfeld „Druckvorschau“ angezeigte Seite immer die erste Seite. Michelle fragt sich, ob es eine Möglichkeit gibt, dass die Seitenansicht automatisch die Seite des Arbeitsblatts anzeigt, an dem sie arbeitet.

Eine Möglichkeit, dieses Problem zu lösen, besteht darin, mit Druckbereichen zu arbeiten. Wenn Sie den Bereich des Arbeitsblatts auswählen, an dem Sie arbeiten, und dann den Druckbereich auf Ihre Auswahl einstellen, sollte beim Anzeigen der Druckvorschau nur dieser Druckbereich angezeigt werden.

Wenn dies Ihren Wunsch nicht erfüllt, könnten Sie denken, Sie könnten auf die Verwendung eines Makros zurückgreifen. Hier ist ein Beispielmakro, das den Trick für Sie erledigen kann:

Sub PrintPreviewActivePage()

Dim lActiveRow As Long     Dim iActiveCol As Integer     Dim iHPBs As Integer     Dim iVPBs As Integer     Dim lRow As Integer     Dim iCol As Integer     Dim iPage As Integer

lActiveRow = ActiveCell.Row     iActiveCol = ActiveCell.Column     ActiveSheet.UsedRange

If IsEmpty(ActiveCell.SpecialCells(xlCellTypeLastCell)) Then _       ActiveCell.SpecialCells(xlCellTypeLastCell).FormulaR1C1 = " "

If lActiveRow > ActiveCell.SpecialCells(xlCellTypeLastCell).Row Or _       iActiveCol > ActiveCell.SpecialCells(xlCellTypeLastCell).Column Then _       Exit Sub

With ActiveSheet         iHPBs = .HPageBreaks.Count         iVPBs = .VPageBreaks.Count         lRow = 0         iCol = 0         If iHPBs > 0 Or iVPBs > 0 Then             For lRow = iHPBs To 1 Step -1                 If .HPageBreaks(lRow).Location.Row <= lActiveRow Then Exit For             Next lRow             For iCol = iVPBs To 1 Step -1                 If .VPageBreaks(iCol).Location.Column <= iActiveCol Then Exit For             Next iCol         End If         iPage = (lRow + 1) + (iCol * (iHPBs + 1))

.PrintOut From:=iPage, To:=iPage, Preview:=True         MsgBox "Previewed page " & iPage     End With     If ActiveCell.SpecialCells(xlCellTypeLastCell).FormulaR1C1 = " " Then _       Selection.SpecialCells(xlCellTypeLastCell).ClearContents End Sub

Dieses Makro ist tatsächlich eine Variation einer beliebigen Anzahl von Makros, die Sie mit einigen Suchanfragen im Internet finden können. Es gibt zwei Hauptteile: Zuerst ermittelt das Makro, auf welcher „Seite“ Sie sich im Arbeitsblatt befinden, und verwendet dann die .PrintOut-Methode, wobei der Parameter Preview auf True gesetzt ist. Dadurch wird die Seitenansicht aufgerufen.

In einigen Arbeitsblättern mag dieses Makro großartig funktionieren, aber es ist ziemlich unbeständig, ob es funktioniert oder nicht. Bei den meisten Tests konnte ich es nicht zum Laufen bringen, es sei denn, ich habe sehr kleine Arbeitsblätter verwendet. (Mit anderen Worten, nur sehr wenige Zeilen und Spalten.) Wenn Sie es auf einem großen Arbeitsblatt ausführen, werden Sie schnell feststellen, dass in der Schleife, die Mitglieder der .HPageBreaks-Auflistung untersucht, der Fehler „Index außerhalb des Bereichs“ angezeigt wird. Wie dies passieren kann, wenn Sie kein Mitglied verwenden, das außerhalb des Bereichs liegt (lRow variiert nie außerhalb des von der .Count-Eigenschaft zurückgegebenen Werts), ist verwirrend.

Es scheint jedoch ein Problem zu sein, das Microsoft anerkennt. Tatsächlich ist es ein Problem, das sie seit Jahren erkannt, aber nie behoben haben:

https://support.microsoft.com/en-us/help/210663/

Die auf der Webseite vorgeschlagene Lösung funktioniert jedoch nicht wirklich. Wir bleiben also bei einem Makro, das nur auf Arbeitsblättern zuverlässig funktioniert, auf denen Sie die Seitenzahl nicht berechnen müssten, da Sie nur mit einer einzelnen Seite arbeiten. Aargh!

Das Fazit ist, dass ein makrobasierter Ansatz – auf absehbare Zeit – für Michelles Bedürfnisse möglicherweise nicht realisierbar ist. Wir haben also nur den Druckbereichsansatz, der am Anfang dieses Tipps beschrieben wurde.

_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 (13578) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.