Rulați o macro când Excel începe - Exemple de cod VBA

Trebuie să rulați o macro când începe Excel? Aveți două opțiuni:

1. Creați o secțiune Workbook_Open () în „ThisWorkbook”.

2. Plasați un sub Auto_Open () în orice modul.

Workbook_Open Event

Creați un sub intitulat „Workbook_Open” în „ThisWorkbook”

123 Workbook_open ()MsgBox "Acest cod a rulat la începutul Excel!"Sfârșitul Sub

Deschidere automată

Utilizarea celei de-a doua metode: Pur și simplu creați un subrutin numit Auto_Open și plasați codul în el sau apelați un alt sub de acolo. Codul dvs. rulează automat la pornirea Excel.

123 Private Sub Auto_Open ()MsgBox "Acest cod a rulat la începutul Excel!"Sfârșitul Sub

Creați și denumiți o foaie de lucru nouă de fiecare dată când Excel se deschide

Următorul cod funcționează deschizând un registru de lucru. Se adaugă automat o foaie nouă și o etichetează cu data. De asemenea, verifică dacă foaia nu există deja - pentru a permite posibilitatea deschiderii acesteia de mai multe ori pe zi.

Acest cod folosește evenimentul deschis al registrului de lucru și trebuie plasat în modulul registrului de lucru sub evenimentul „Deschideți cartea de lucru”. Funcția Sheet_Exist trebuie plasată într-un modul și aceasta verifică dacă foaia există sau nu:

123456789101112131415 Private Sub Workbook_Open ()Afișează numele_foaie_nou ca șirNew_Sheet_Name = Format (Acum (), "zz-ll-aa")Dacă Sheet_Exists (New_Sheet_Name) = False AtunciCu WorkbookWorksheets.Add (). Name = New_Sheet_NameSe termina cuEnd IfSalvațiSfârșitul Sub
12345678910111213 Funcție Sheet_Exists (WorkSheet_Name As String) Ca BooleanReduceți foaia de lucru ca foaie de lucruSheet_Exists = FalsePentru fiecare foaie de lucru din acest manual de lucruDacă Work_sheet.Name = WorkSheet_Name atunciSheet_Exists = AdevăratEnd IfUrmătorulFuncția de sfârșit

Pentru a descărca fișierul .XLSM pentru acest tutorial, faceți clic aici

Setați foaia implicită când se deschide registrul de lucru

Doriți să vă asigurați că o foaie apare întotdeauna mai întâi când se deschide un registru de lucru? De exemplu, atunci când deschideți un registru de lucru, foaia 3 este întotdeauna foaia activă. Iată cum.

Puteți face referire la o foaie din VBA după numele programului său (adică Sheet3) sau după numele filei sale (adică JanData). Cel mai bine este să utilizați numele programului, deoarece dacă numele filei se schimbă, codul dvs. VBA care se referă la un nume de filă nu va mai funcționa. Cu toate acestea, dacă utilizați numele programului, un utilizator poate schimba numele filei de mai multe ori, iar macrocomanda dvs. funcționează în continuare.

Pentru a vă asigura că o anumită foaie este întotdeauna activată când se deschide un registru de lucru, plasați codul sheet.activate în sub-cartea de lucru deschis. Acesta este un exemplu care activează sheet3 utilizând numele programului de fiecare dată când se deschide un registru de lucru.

123 Private Sub Workbook_Open ()Foaie 3. ActivațiSfârșitul Sub

Și aceasta o face folosind numele filei:

1234 Private Sub Workbook_Open ()Foi de calcul („mytabname”). ActivațiSfârșitul Sub

Sidenote: Trebuie să salvați și să reporniți Excel pentru ca acest lucru să funcționeze.
Sidenote: Acest lucru funcționează numai dacă macro-urile sunt activate.
Sidenote: Puneți acest cod în fereastra de cod pentru obiectul ThisWorkbook din VBE.

Încărcați formularul de fiecare dată când se deschide registrul de lucru

Dacă doriți să încărcați un formular sau să rulați un cod VBA atunci când deschideți un registru de lucru Excel, plasați codul în fereastra de cod Thisworkbook și în sub-Workbook_Open.

Din foaia de calcul:
1. Apăsați ALT și F11 pentru a deschide editorul VB
2. Faceți dublu clic pe cuvântul ThisWorkbook pentru a deschide fereastra de cod
3. Tastați următorul cod în fereastra de cod ThisWorkbook

123 Private Sub Workbook_Open ()UserForm 1. AfișațiSfârșitul Sub

Sidenote: Înlocuiți Userform1 cu numele formularului

4. Închideți Excel și redeschideți.

wave wave wave wave wave