Kjør en makro når Excel starter - eksempler på VBA -kode

Må du kjøre en makro når Excel starter? Du har to alternativer:

1. Opprett en Workbook_Open () sub i "ThisWorkbook".

2. Plasser en Auto_Open () sub i en hvilken som helst modul.

Arbeidsbok_Åpent arrangement

Lag en undertittel 'Workbook_Open' i 'ThisWorkbook'

123 Workbook_open ()MsgBox "Denne koden kjørte ved Excel start!"Slutt Sub

Auto_Open

Ved hjelp av den andre metoden: Bare opprett en underprogram som heter Auto_Open og legg koden i den, eller ring en annen sub derfra. Koden din kjøres automatisk når Excel starter.

123 Privat sub Auto_Open ()MsgBox "Denne koden kjørte ved Excel start!"Slutt Sub

Lag og navngi nytt regneark hver gang Excel åpnes

Følgende kode fungerer ved å åpne en arbeidsbok. Det legger automatisk til et nytt ark og merker det med datoen. Den kontrollerer også at arket ikke allerede eksisterer - for å tillate muligheten for at det kan åpnes mer enn en gang om dagen.

Denne koden bruker Workbook Open Event og må plasseres i arbeidsbokmodulen under "Open work Book" -hendelsen. Funksjonen Sheet_Exist må plasseres i en modul, og denne kontrollerer om arket eksisterer eller ikke:

123456789101112131415 Private Sub Workbook_Open ()Dim New_Sheet_Name As StringNew_Sheet_Name = Format (Nå (), "dd-mm-åå")Hvis Sheet_Exists (New_Sheet_Name) = False DaMed arbeidsbokWorksheets.Add (). Name = New_Sheet_NameSlutt medSlutt omLagreSlutt Sub
12345678910111213 Funksjon Sheet_Exists (WorkSheet_Name As String) Som boolskDim Work_sheet Som regnearkSheet_Exists = FalseFor hvert arbeidsark i ThisWorkbook.WorksheetsHvis Work_sheet.Name = WorkSheet_Name DaSheet_Exists = SantSlutt omNesteSluttfunksjon

For å laste ned .XLSM -filen for denne opplæringen, klikk her

Angi standardarket når arbeidsboken åpnes

Vil du være sikker på at et ark alltid vises først når en arbeidsbok åpnes? For eksempel når du åpner et arbeidsbokark3, er alltid det aktive arket. Dette er hvordan.

Du kan referere til et ark fra VBA ved å bruke programnavnet (dvs. Sheet3) eller tabbenavnet (dvs. JanData). Det er best å bruke programnavnet, for hvis fanenavnet endres, vil ikke VBA -koden som refererer til et fanenavn lenger fungere. Men hvis du bruker programnavnet, kan en bruker endre fanenavnet flere ganger, og makroen din fungerer fortsatt.

For å sikre at et bestemt ark alltid er aktivert når en arbeidsbok åpnes, er det bare å plassere ark. Aktivere koden i arbeidsboken_åpne sub. Dette er et eksempel som aktiverer sheet3 ved å bruke programnavnet hver gang en arbeidsbok åpnes.

123 Private Sub Workbook_Open ()Ark 3.AktiverSlutt Sub

Og dette gjør det ved å bruke fanenavnet:

1234 Private Sub Workbook_Open ()Ark ("mytabname"). AktiverSlutt Sub

Sidenote: Du må lagre og starte excel på nytt for at dette skal fungere.
Sidenote: Dette fungerer bare hvis makroer er aktivert.
Sidenote: Sett denne koden i kodevinduet for ThisWorkbook -objektet i VBE.

Last skjema hver gang arbeidsbok åpnes

Hvis du vil laste inn et skjema eller kjøre noen VBA -kode når du åpner en Excel -arbeidsbok, plasserer du koden i vinduet Thisworkbook -kode og i arbeidsboken_Open sub.

Fra regnearket:
1. Trykk ALT og F11 for å åpne VB -editoren
2. Dobbeltklikk på ordet ThisWorkbook for å åpne kodevinduet
3. Skriv inn følgende kode i ThisWorkbook -kodevinduet

123 Private Sub Workbook_Open ()UserForm1.ShowSlutt Sub

Sidenote: Erstatt Userform1 med skjemanavnet ditt

4. Lukk Excel og åpne igjen.

wave wave wave wave wave