Versehentliches Entfernen von eingefrorenen Fenstern (Microsoft Excel)
Steven hat ein Arbeitsblatt mit vielen Datenzeilen und -spalten. Er hat die erste Zeile und Spalte eingefroren, indem er Zelle B2 aktiviert und dann Scheiben eingefroren hat. Das funktioniert so, wie er es will. Er kann sogar die Arbeitsmappe speichern und schließen, und die Fenster sind immer noch eingefroren, wenn er die Arbeitsmappe erneut öffnet.
Wenn Steven jedoch ein neues Fenster für die Arbeitsmappe öffnet (Ansicht | Fenster | Neues Fenster), enthält das neue Fenster keine eingefrorenen Fenster. Da er in vielen Arbeitsblättern dieser Arbeitsmappe Fenster eingefroren hat, muss er sehr vorsichtig sein, welches Fenster er zuerst schließt. Wenn er zuerst das ursprüngliche Fenster schließt und die Arbeitsmappe speichert, werden alle nicht eingefrorenen Arbeitsblätter gespeichert.
Steven fragt sich, ob es eine Möglichkeit gibt, das neue Fenster dazu zu bringen, die Einstellungen für eingefrorene Fenster beizubehalten.
In Excel gibt es keine Einstellung, die die Anforderungen von Steven erfüllt. Der Grund dafür, dass die eingefrorenen Fenster nicht gespeichert werden, liegt darin, dass FreezePanes (zusammen mit Zoom, Split und einigen anderen Einstellungen) Eigenschaften von Fenstern sind, nicht von Arbeitsblättern oder Arbeitsmappen. Wenn ein neues Fenster erstellt wird, werden die Eigenschaften nicht vom ursprünglichen Fenster geerbt.
Sie können dieses Verhalten jedoch umgehen (und Stevens Problem lösen)
Verwenden Sie ein Makro, um das Setup für Sie durchzuführen. Ein sehr kurzer Ansatz besteht darin, auf die Verwendung der Multifunktionsleistenwerkzeuge zu verzichten, um Ihr neues Fenster zu erstellen. Fügen Sie stattdessen dieses Makro zur QAT hinzu und verwenden Sie es für die Fenstererstellung:
Sub CreateNewWindow1() Dim rPane As Range Set rPane = ActiveWindow.VisibleRange(1) ActiveWindow.NewWindow ActiveSheet.Range("B2").Select ActiveWindow.FreezePanes = True End Sub
Das Makro erstellt ein neues Fenster, setzt die sichtbaren Zellen auf das, was im ursprünglichen Fenster angezeigt wird, wählt die Zelle B2 im neuen Fenster aus und friert dann die Fenster ein.
Dieser einfache Ansatz funktioniert jedoch möglicherweise nicht, wenn Ihre Anforderungen an das Einfrieren von Scheiben vielfältiger sind. Beispielsweise möchten Sie möglicherweise eine Möglichkeit, ein neues Fenster zu erstellen und es mit den Fenstern in dem Fenster abzugleichen, das beim Erstellen des neuen Fensters aktiv war.
Das folgende Makro prüft, ob das aktuelle Fenster einen Folzbereich hat. Wenn dies der Fall ist, wird herausgefunden, wo es eingefroren ist, und damit werden die eingefrorenen Fenster in einem neuen Fenster festgelegt. Wenn keine eingefrorenen Fenster vorhanden sind, wird trotzdem ein neues Fenster erstellt und dort wird nichts eingefroren. In beiden Fällen wird im neuen Fenster dieselbe Zelle ausgewählt wie im Original.
Sub CreateNewWindow2() Dim iRow As Integer Dim iCol As Integer Dim rOldPos As Range iRow = 0 iCol = 0 If ActiveWindow.FreezePanes Then iRow = ActiveWindow.ScrollRow iCol = ActiveWindow.ScrollColumn End If Set rOldPos = ActiveCell ActiveWindow.NewWindow If (iRow > 0) And (iCol > 0) Then Cells(iRow, iCol).Select ActiveWindow.FreezePanes = True End If rOldPos.Select End Sub
Dieser Code kann wiederum zum Erstellen neuer Fenster verwendet werden.
Sie erreichen das, was Steven tun musste, weil sie die Einstellungen des eingefrorenen Fensters vom aktiven Fenster in das neu erstellte Fenster kopieren.
_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 (13366) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.