Anzeigen der Druckvorschau für die aktuelle Seite (Microsoft Excel)
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.