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.