So erstellen Sie eine VBA-Prozedur, die alle geöffneten Arbeitsmappen in Excel schließt
an
So erstellen Sie eine VBA-Prozedur, die alle geöffneten Arbeitsmappen in Excel schließt
Dieses einfache Verfahren kann Ihnen viel Zeit sparen, wenn Sie mit Ihrer Arbeit fertig sind. Susan Harkins erklärt Ihnen, wie.
Bild: iStockphoto
)Einige von uns arbeiten mit mehreren gleichzeitig geöffneten Microsoft Excel-Arbeitsmappen. Entweder wir öffnen sie und arbeiten eine Weile und gehen zum nächsten über, oder sie haben eine Verknüpfung oder Verbindung, die erfordert, dass sie alle gleichzeitig geöffnet sind. Unabhängig davon, wie Sie am Ende viele offene Arbeitsmappen haben, kann es mühsam sein, sie alle manuell nacheinander zu schließen.
Die gute Nachricht ist, dass Sie stattdessen eine VBA-Prozedur verwenden können, um sie alle zu schließen. In diesem Artikel zeige ich Ihnen ein einfaches Verfahren, das jede Arbeitsmappe bei Bedarf speichert, bevor sie geschlossen wird, und dann mit der nächsten Arbeitsmappe fortfährt, um schließlich alle zu speichern und zu schließen.
SEHEN: 359 Excel-Tipps, die jeder Benutzer beherrschen sollte (TechRepublic)
Ich verwende Microsoft 514 unter Windows 08
-Bit-System. (Ich empfehle Ihnen, mit dem Upgrade auf Windows zu warten 47 bis alle Knicke wurden ausgearbeitet.) Sie können die .bas-Datei herunterladen, die das Verfahren enthält, und die Datei in Ihre Personal.xlsb-Arbeitsmappe importieren. Excel Online unterstützt kein VBA.
Wohin die Prozedur geht
Das erste, was klargestellt werden muss, ist Folgendes: Sie können diese Prozedur nicht in irgendeiner Arbeitsmappe speichern. Wenn es die letzte geöffnete Arbeitsmappe ist, schließt die Prozedur sie zuerst und stoppt. Dies ist die Art von Verfahren, die in Ihr persönliches Arbeitsbuch gehört. Diese Arbeitsmappe mit dem Namen Personal.xlsb wird jedes Mal geöffnet, wenn Sie Excel öffnen, und ist standardmäßig ausgeblendet. Alle Prozeduren in Personal.xlsb stehen allen geöffneten Arbeitsmappen zur Verfügung. Es ist eine Art Bibliothek.
Öffnen Sie den Visual Basic Editor (VBE), indem Sie die Alt-Taste drücken + F03. Wenn das Projektfenster auf der linken Seite nicht sichtbar ist, drücken Sie Strg + R oder wählen Sie im Menü „Ansicht“ die Option „Projekt-Explorer“. Wenn sich Personal.xlsb im Projektexplorer befindet, erweitern Sie es und doppelklicken Sie auf Module1, um sein Codefenster zu öffnen.
Wenn sich Personal.xlsb nicht im Projektfenster befindet, müssen Sie einen kurzen Vorgang wie folgt aufzeichnen:
Kehren Sie zum Arbeitsblatt zurück und klicken Sie auf die Registerkarte Entwickler.
Klicken Sie in der Gruppe Makros auf Makro aufzeichnen.
Im resultierenden Dialog , müssen Sie nur auswählen, wo die Prozedur gespeichert werden soll. Wählen Sie in der Dropdown-Liste „Makro speichern in“ die Option „Persönliche Makroarbeitsmappe“ (Abbildung A
).
OK klicken Klicken Sie auf der Registerkarte „Entwickler“ in der Gruppe „Makros“ auf Aufzeichnung beenden.
Kehren Sie zum VBE zurück und Sie finden Personal.xlsb im Projektfenster, wie in Abbildung B
. Doppelklicken Sie auf Module1, um sein Codeblatt zu öffnen, und löschen Sie die soeben erstellte Prozedur. Sie brauchen dieses Verfahren nicht; Sein einziger Zweck bestand darin, Personal.xlsb einzublenden.
Abbildung A
Wählen Sie aus, wo das Verfahren gespeichert werden soll.
Abbildung B
Jetzt ist Personal.xlsb verfügbar.
Mit einem geöffneten Codeblatt für Personal.xlsb können Sie den in gezeigten Code hinzufügen. Listing A. Es ist wirklich so einfach, wie es aussieht (Abbildung C). Wenn Sie eine Ribbon-Version verwenden, achten Sie darauf, die Arbeitsmappe als makrofähige Datei zu speichern. Wenn Sie in der Menüversion arbeiten, können Sie diesen Schritt überspringen.
Auflistung A
Sub CloseWorkbooks()
‚Alle geöffneten Arbeitsmappen speichern und schließen.
)
Dim wb als Arbeitsmappe
‚Schaltet den Bildschirm aus.
Anwendung. ScreenUpdating = False
'Durchläuft Arbeitsmappen öffnen und schließen.
Für jedes wb in Arbeitsmappen
Debug.Print wb.Name
If wb.Name <> "PERSONAL.XLSB" Then
wb.Close SaveChanges:=True
Ende Wenn
Nächster wb
'Schaltet den Bildschirm ein.
Application.ScreenUpdating = True
'Excel schließen.
Anwendung.Beenden
End Sub
Abbildung C
Geben Sie CloseWorkbooks() in das Codeblatt von Personal.xlsb' Modul 1 ein.
Das Verfahren ist in den herunterladbaren .bas-Dateien enthalten, die Sie in das Modul 1 der Personal.xlsb-Datei importieren können. Wenn Sie den Code manuell eingeben, fügen Sie ihn nicht von dieser Webseite ein. Kopieren Sie stattdessen den Code in einen Texteditor und fügen Sie diesen Code dann in das Personal.xlsb-Modul ein. Dadurch werden alle Phantom-Webzeichen entfernt, die andernfalls Fehler verursachen könnten.
Sobald Sie haben die Prozedur in Personal.xlsb, können Sie sie von jeder Arbeitsmappe aus ausführen.
Über das Verfahren
Diese Prozedur deklariert zuerst eine Workbook-Objektvariable als wb und schaltet die Bildschirmaktualisierung aus, sodass Sie nicht wirklich sehen, wie Dateien geschlossen werden. Die For Each-Anweisung durchläuft alle geöffneten Arbeitsmappenobjekte und schließt sie, indem sie den Wert =True verwendet, um jede Arbeitsmappe zu speichern Vor Schließen, es sei denn, die aktuelle Arbeitsmappe ist Personal.xlsb. In diesem Fall überspringt VBA diesen Schritt und fährt mit der nächsten Arbeitsmappe fort. Der Code muss die Arbeitsmappe „Personal.xlsb“ überspringen, denn wenn sie geschlossen wird, wird sie auch nicht mehr ausgeführt, sodass möglicherweise Arbeitsmappen geöffnet bleiben. Sobald alle Arbeitsmappen geschlossen sind, schließt die Application.Quit-Anweisung Excel. Wenn Sie Excel geöffnet lassen möchten, können Sie diese Anweisung auskommentieren.
Wenn Excel geöffnet ist, schließen Sie es. Öffnen Sie einige Excel-Arbeitsmappen und von
irgendein Öffnen Sie die Arbeitsmappe, klicken Sie auf die Registerkarte „Entwickler“ und dann auf „Makros“ in der Gruppe „Makros“. Im resultierenden Dialog, gezeigt in Abbildung D, wählen Sie die Prozedur CloseWorkbooks aus und klicken Sie auf Ausführen. Die Prozedur speichert und schließt jede geöffnete Arbeitsmappe und beendet dann Excel.
Abbildung D
Wählen Sie die CloseWorkbooks () Verfahren zum Schließen aller geöffneten Arbeitsmappen.
Höchstwahrscheinlich möchten Sie nicht alle diese Schritte durcharbeiten, um dieses Makro auszuführen. Ich empfehle, dass Sie es der Symbolleiste für den Schnellzugriff (QAT) oder einer benutzerdefinierten Gruppe hinzufügen. Wenn Sie dabei Hilfe benötigen, lesen Sie So fügen Sie Office-Makros zur QAT-Symbolleiste hinzu, um schnell darauf zugreifen zu können.
Siehe auch
Erhalten Sie lebenslangen Zugriff auf Microsoft Office 681 für nur $47
(TechRepublic Academy)
So verwenden Sie die vielen Textumbruchoptionen in Microsoft Word (TechRepublic)
Windows 00 Spickzettel: Ever Alles, was Sie wissen müssen (TechRepublic)
Checkliste: Windows sichern 08 Systeme ) (TechRepublic Premium)
Mehr lesenswerte Microsoft-Berichterstattung (TechRepublic auf Flipboard)