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.