Makros Arbeitsmappe zu speichern, wenn Zellen ändern

In Excel können Sie auf Daten arbeiten, die so empfindlich ist, dass Sie jedes Mal, wenn eine bestimmte Zelle oder einen Bereich von Zellen verändert wird, zu speichern werden soll. Dieses Makro ermöglicht es Ihnen, eine Reihe von Zellen zu definieren, die, wenn geändert, um die Arbeitsmappe zwingt zu speichern.

In dem gezeigten Beispiel, möchten Sie die Arbeitsmappe zu speichern, wenn eine Bearbeitung auf eine der Zellen im Bereich C5 hergestellt: C16.

Ändern einer Zelle in C5: C16 zwingt die Arbeitsmappe zu speichern.
Ändern einer Zelle in C5: C16 zwingt die Arbeitsmappe zu speichern.

Wie die Makro funktioniert

Das Geheimnis dieser Code ist die Methode Intersect. Weil Sie nicht wollen, um das Arbeitsblatt zu speichern, wenn alle alten Zelle ändert, können Sie die Intersect-Methode verwenden, um festzustellen, ob die Zielzelle (die Zelle, die geändert) mit dem angegebenen Bereich als Triggerbereich (C5: C16 in diesem Fall) schneidet .

Die Intersect-Methode gibt eines von zwei Dingen: ein Range-Objekt, das die Schnittstelle zwischen den beiden angegebenen Bereiche oder nichts definiert. Also im Grunde, müssen Sie die Zielzelle gegen die Intersect-Methode zu werfen für einen Wert von Nichts zu überprüfen. An diesem Punkt können Sie entscheiden, ob die Arbeitsmappe zu speichern.

Private Sub Worksheet_Change (ByVal Target As Range) "Schritt 1: Ist die geänderte Bereich schneiden Wenn Intersect (Target, Range (" C5: C16 "))? Is Nothing Then'Step 2: Wenn es keine Kreuzung, Ausfahrt procedureExit Sub ' Schritt 3: Wenn es eine Kreuzung ist, speichern Sie die workbookElseActiveWorkbook.Save'Step 4: Wenn statementEnd IfEnd Sub Schließen Sie aus

In Schritt 1, überprüfen Sie einfach, um zu sehen, ob die Zielzelle (die Zelle, die sich geändert hat) ist in dem angegebenen Bereich von der Intersect-Methode. Ein Wert von Nichts bedeutet, dass die Zielzelle außerhalb des Bereichs angegeben.

Schritt 2 zwingt das Makro, das Verfahren zu stoppen und beenden, wenn es keine Überschneidung zwischen der Zielzelle und dem angegebenen Bereich.

Wenn es eine Kreuzung ist, Schritt 3 feuert die Save-Methode der aktiven Arbeitsmappe, die vorherige Version überschrieben wird.

In Schritt 4, zu schließen Sie einfach die If-Anweisung. Jedes Mal, wenn Sie eine If-Then-Else-Check starten, müssen Sie es schließen, wenn mit einem entsprechenden Ende heraus.

Wie das Makro zu verwenden,

Um dieses Makro zu implementieren, müssen Sie kopieren und fügen Sie ihn in das Worksheet_Change Ereigniscode-Fenster. das Makro hier Platzierung ermöglicht es jedes Mal, wenn Sie eine Änderung auf das Blatt zu laufen:

  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 das Blatt, von dem Sie den Code auslösen möchten.

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

  5. Geben oder den Code in das neu erstellte Modul einfügen, um den Bereich Adressänderung an Ihre Bedürfnisse anzupassen.

    Geben Sie den Code in das Arbeitsblatt Change-Ereignis.
    Geben Sie den Code in das Arbeitsblatt Change-Ereignis.

Menü