Eine Excel-Makro-Arbeitsmappe, um zu verhindern Schließen

Es gibt Zeiten, wenn Sie eine Excel-Arbeitsmappe schließen nicht aus ein Benutzer möchten, ohne einen bestimmten Teil der Daten eingeben. In diesen Situationen wäre es sinnvoll sein, dem Benutzer die Möglichkeit zu verweigern, die Arbeitsmappe zu schließen, bis die Zielzelle in gefüllt ist (wie hier gezeigt). Dies ist, wo dieses geschickte Makro kommt.

Verhindern Sie Schließen, bis eine bestimmte Zelle aufgefüllt wird.
Verhindern Sie Schließen, bis eine bestimmte Zelle aufgefüllt wird.

Wie die Makro funktioniert

Dieser Code wird von der Ereignis Before Arbeitsmappe ausgelöst. Wenn Sie versuchen, die Arbeitsmappe, dieses Ereignis ausgelöst zu schließen, in den Code ausgeführt wird. Dieses Makro prüft, ob die Zielzelle (Zelle C7, in diesem Fall) ist leer. Wenn es leer ist, wird die enge Prozess abgebrochen. Wenn C7 nicht leer ist, wird die Arbeitsmappe gespeichert und geschlossen:

Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Schritt 1:.. Überprüfen Sie, ob die Zelle C7 blankIf Sheets ist ( "Sheet1") Range ( "C7") Value = "" Then'Step 2: Wenn die Zelle leer ist, brechen die schließen und sagen userCancel = TrueMsgBox "Zelle C7 nicht leer sein" 'Schritt 3: Wenn die Zelle nicht leer ist, zu speichern und closeElseActiveWorkbook.Close Savechanges: = TrueEnd IfEnd Sub

Schritt 1 überprüft, um zu sehen, ob C7 ist leer.

Wenn C7 leer ist, nimmt Schritt 2 Wirkung, die enge Prozess abbrechen, indem zum Abbrechen Boolean True zu. Schritt 2 aktiviert auch ein Meldungsfeld benachrichtigt den Benutzer über seine oder ihre Dummheit (na ja, es ist nicht ganz so hart, wirklich).

In Schritt 3 wird, wenn die Zelle C7 nicht leer ist, wird die Arbeitsmappe gespeichert und geschlossen.

Wie das Makro zu verwenden,

Um dieses Makro zu implementieren, müssen Sie kopieren und fügen Sie ihn in das Workbook_BeforeClose Ereigniscode-Fenster. das Makro hier Platzierung ermöglicht es jedes Mal, wenn Sie versuchen, schließen Sie die Arbeitsmappe auszuführen:

  1. Visual Basic-Editor aktivieren, indem Sie Alt + F11 drücken.

  2. Im Projektfenster, finden Sie Ihr Projekt / Arbeitsmappe Namen und klicken Sie auf das Pluszeichen neben ihm alle Blätter zu sehen.

  3. Klicken Sie auf Thisworkbook.

  4. In der Event-Dropdown-Liste, wählen Sie das Ereignis Before.

  5. Geben oder den Code in das neu erstellte Modul einfügen.

    Geben Sie den Code in der Arbeitsmappe Ereignis Before.
    Geben Sie den Code in der Arbeitsmappe Ereignis Before.

Menü