Ausführen eines Makros beim Starten von Excel - VBA-Codebeispiele

Müssen Sie beim Starten von Excel ein Makro ausführen? Sie haben zwei Möglichkeiten:

1. Erstellen Sie ein Workbook_Open()-Sub in „ThisWorkbook“.

2. Platzieren Sie ein Auto_Open()-Sub in einem beliebigen Modul.

Workbook_Open-Ereignis

Erstellen Sie einen Untertitel mit dem Titel „Workbook_Open“ in „ThisWorkbook“

123 Arbeitsmappe_open ()MsgBox "Dieser Code wurde beim Excel-Start ausgeführt!"End Sub

Auto_Open

Mit der zweiten Methode: Erstellen Sie einfach eine Unterroutine namens Auto_Open und platzieren Sie Code darin, oder rufen Sie von dort aus eine andere Unterroutine auf. Ihr Code wird automatisch ausgeführt, wenn Excel gestartet wird.

123 Privates Sub Auto_Open()MsgBox "Dieser Code wurde beim Excel-Start ausgeführt!"End Sub

Jedes Mal, wenn Excel geöffnet wird, ein neues Arbeitsblatt erstellen und benennen

Der folgende Code funktioniert beim Öffnen einer Arbeitsmappe. Es fügt automatisch ein neues Blatt hinzu und beschriftet es mit dem Datum. Es überprüft auch, ob das Blatt noch nicht vorhanden ist - um die Möglichkeit zu berücksichtigen, dass es mehr als einmal am Tag geöffnet wird.

Dieser Code verwendet das Ereignis Arbeitsmappe öffnen und muss im Arbeitsmappenmodul unter dem Ereignis "Arbeitsmappe öffnen" platziert werden. Die Funktion Sheet_Exist muss in einem Modul platziert werden und prüft, ob das Sheet existiert oder nicht:

123456789101112131415 Private Unterarbeitsmappe_Open()Dim New_Sheet_Name als StringNew_Sheet_Name = Format(Now(), "TT-MM-JJ")Wenn Sheet_Exists(New_Sheet_Name) = False ThenMit ArbeitsbuchWorksheets.Add().Name = New_Sheet_NameEnde mitEnde WennSpeichernEnd Sub
12345678910111213 Funktion Sheet_Exists(WorkSheet_Name As String) As BooleanDim Work_sheet As WorksheetSheet_Exists = FalseFür jedes Arbeitsblatt in dieserArbeitsmappe.ArbeitsblätterWenn WorkSheet.Name = WorkSheet_Name ThenSheet_Exists = TrueEnde WennNächsteEndfunktion

Um die .XLSM-Datei für dieses Tutorial herunterzuladen, klicken Sie hier

Festlegen des Standardblatts beim Öffnen der Arbeitsmappe

Möchten Sie sicherstellen, dass ein Arbeitsblatt immer zuerst angezeigt wird, wenn eine Arbeitsmappe geöffnet wird? Wenn Sie beispielsweise eine Arbeitsmappe öffnen, ist Blatt3 immer das aktive Blatt. Hier ist wie.

Sie können auf ein Blatt aus VBA über seinen Programmnamen (dh Sheet3) oder seinen Registerkartennamen (dh JanData) verweisen. Am besten verwenden Sie den Programmnamen, denn wenn sich der Tab-Name ändert, funktioniert Ihr VBA-Code, der auf einen Tab-Namen verweist, nicht mehr. Wenn Sie jedoch den Programmnamen verwenden, kann ein Benutzer den Registerkartennamen mehrmals ändern und Ihr Makro funktioniert weiterhin.

Um sicherzustellen, dass ein bestimmtes Blatt immer aktiviert ist, wenn eine Arbeitsmappe geöffnet wird, platzieren Sie einfach den Code sheet.activate im Unterordner workbook_open. Dies ist ein Beispiel, das Sheet3 aktiviert, indem der Programmname jedes Mal verwendet wird, wenn eine Arbeitsmappe geöffnet wird.

123 Private Unterarbeitsmappe_Open()Blatt3.AktivierenEnd Sub

Und dies geschieht über den Tab-Namen:

1234 Private Unterarbeitsmappe_Open()Sheets("mytabname").AktivierenEnd Sub

Randnotiz: Sie müssen Excel speichern und neu starten, damit dies funktioniert.
Randnotiz: Dies funktioniert nur, wenn Makros aktiviert sind.
Randnotiz: Fügen Sie diesen Code in das Codefenster für das ThisWorkbook-Objekt in der VBE ein.

Formular jedes Mal laden, wenn die Arbeitsmappe geöffnet wird

Wenn Sie beim Öffnen einer Excel-Arbeitsmappe ein Formular laden oder VBA-Code ausführen möchten, platzieren Sie Ihren Code im Codefenster Thisworkbook und im Unterordner Workbook_Open.

Aus Ihrer Tabelle:
1. Drücken Sie ALT und F11, um den VB-Editor zu öffnen
2. Doppelklicken Sie auf das Wort ThisWorkbook, um das Codefenster zu öffnen
3. Geben Sie den folgenden Code in das Codefenster von ThisWorkbook ein

123 Private Unterarbeitsmappe_Open()UserForm1.ShowEnd Sub

Randnotiz: Ersetzen Sie Userform1 durch Ihren Formularnamen

4. Schließen Sie Excel und öffnen Sie es erneut.

wave wave wave wave wave