WorkBook-Ereignisse – Nicht mit Freeze Panes speichern – VBA-Codebeispiele

Fenster mit VBA fixieren

Ich habe kürzlich zum Einfrieren von Fenstern in Excel gepostet. So können Sie dies mit VBA tun:

Zeilen einfrieren

 Rows("1:1").Select ActiveWindow.FreezePanes = True 

Spalten einfrieren

 Range("A:A").Select ActiveWindow.FreezePanes = True

Zeilen und Spalten einfrieren

 Range("B2").Select ActiveWindow.FreezePanes = True

Fenster einfrieren

 ActiveWindow.FreezePanes = False 

Erzwingen Sie das Speichern der Arbeitsmappe ohne Fenster einfrieren

Excel lässt uns Dinge durch Ereignisse steuern. Dieser Artikel ist keine detaillierte Diskussion darüber, was Ereignisse oder ihre Funktionen sind. Stattdessen gibt es ein Beispiel für ein WorkBook-Ereignis. Dies sind Ereignisse, die auf Arbeitsmappenebene statt auf einem bestimmten Arbeitsblatt abgehalten werden.

Über VBA können wir steuern, was bei bestimmten Ereignissen passiert, z. B. vor dem Drucken oder vor dem Speichern. Ein häufiges Problem, mit dem ich konfrontiert bin, ist, dass eine Reihe von Leuten, mit denen ich arbeite, Dateien mit Freeze Panes nicht mögen.

In diesem Artikel werden wir also einen Code zusammenstellen, der überprüft, ob Freeze Panes aktiviert ist, und wenn ja, wird die Datei nicht gespeichert. Das bedeutet, dass ich es ohne Gefrierscheiben speichern muss - damit meine Kollegen glücklich bleiben !!

Das Wichtigste bei Arbeitsmappenereignissen ist, dass sie an der richtigen Stelle gespeichert werden - auf Arbeitsmappenebene.

Um auf die Arbeitsmappenebene zuzugreifen, führen Sie die folgenden Schritte aus:

1. Klicken Sie mit der rechten Maustaste auf eine Excel-Arbeitsmappe - Code anzeigen:

2. Dies wird angezeigt:

3. Doppelklicken Sie auf „Diese Arbeitsmappe“ und wählen Sie dann „Arbeitsmappe“ aus der ersten Dropdown-Liste auf der linken Seite:

Wir sehen, dass sich der Wert auf der linken Seite jetzt in „Open“ geändert hat – mit etwas Code für das Workbook Open Event. Mit diesem Code können wir bestimmen, was passiert, wenn die Arbeitsmappe zum ersten Mal geöffnet wird.

Wir möchten jedoch steuern, was passiert, wenn wir die Arbeitsmappe speichern. Ändern Sie also das rechte Dropdown-Menü auf „Vor dem Speichern“ . Der Bildschirm sieht nun wie folgt aus:

Wir fügen nun nach der Deklaration folgenden Code ein:

If ActiveWindow.FreezePanes = True Then MsgBox "Fenster fixieren ist aktiviert - Datei wird NICHT GESPEICHERT" Cancel = True End If

Damit der komplette Code nun so aussieht:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) If ActiveWindow.FreezePanes = True Then MsgBox "Fenster fixieren ist aktiviert - Datei wird NICHT GESPEICHERT" Cancel = True End If End Sub

Speichern Sie nun die Datei und aktivieren Sie DANN Freeze Panes in einem beliebigen Fenster. Dann - RESAVE die Datei. Es erscheint eine Msgbox, die besagt, dass „Fenster fixieren“ aktiviert ist – und die Datei nicht gespeichert wird.

Tatsächlich wird die Datei nicht gespeichert, bis Freeze Panes entfernt wird.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave