Programos lygio įvykiai veikia visoje programoje („Excel“ šioje nuorodoje). Tačiau suaktyvinti programos įvykį nėra taip paprasta, kaip sukurti darbaknygės ar darbalapio įvykius. Bet aš jus patikinu, kad tai nėra taip sudėtinga. Šiame straipsnyje mes sužinosime, kaip sukurti ir naudoti „Application Event“ programoje „Excel VBA“ atlikus kelis paprastus veiksmus.
1 veiksmas: sukurkite įvykio objektą klasės modulyje
Norėdami sukurti įvykio objektą, turime naudoti klasės modulį.
- Įdėkite klasės modulį. Pavadink kaip nori. Pavadinau jį „MyAppEvents“.
- Apibrėžkite programos tipo įvykio kintamąjį su raktiniu žodžiu WithEvents.
Privatus su įvykiais „myApp“ kaip programa
- Inicijuokite šį įvykį paprogramėje class_initialize ().
Išskleidžiamajame meniu kairėje pasirinkite klasę. Vėliau viršutiniame dešiniajame išskleidžiamajame meniu pasirinkite inicijuoti.
Private Sub Class_Initialize () Nustatykite myApp = Application End Sub
- Dabar nustatykite įvykius, kuriuos norite naudoti. Viršutiniame kairiajame išskleidžiamajame meniu pasirinkite įvykio objektą. Visas galimas įvykių tvarkymo procedūras galėsite pasiekti viršutiniame dešiniajame išskleidžiamajame meniu. Pasirinkite, ko jums reikia, ir apibrėžkite, ką norite daryti, kai tas įvykis suaktyvėja.
Aš naudoju „SheetActivate“ įvykį. Kai vartotojas perjungia iš bet kurios atidarytos darbaknygės lapų, bus rodomas darbaknygės pavadinimas ir pasirinktas lapo vartotojas.Privatus sub „myApp_SheetActivate“ („ByVal Sh“ kaip objektas) „MsgBox ActiveWorkbook.Name &“-„& Sh.Name End Sub
Čia galite apibrėžti tiek įvykių, kiek norite apibrėžti.
Įvykiai nepradės veikti iš karto. Tai buvo pirmas žingsnis. Kadangi tai yra klasės modulis, turime sukurti jo objektą, kad įvykiai suaktyvėtų.
Dabar šiuos įvykius turime pradėti tik nuo įprastos paprogramės.
2 veiksmas: sukurkite įvykių pradžios paprogramę įprastame modulyje
Dabar turime renginių klasę. Mums tiesiog reikia sukurti tos klasės objektą ir jį inicijuoti. Kai vykdysime šią paprogramę, visi apibrėžti įvykių klasėje įvykiai pradės veikti.
- Įdėkite įprastą modulį.
- Apibrėžkite savo sukurtos klasės kintamąjį.
Privati programa „MyAppEvents“
- Inicijuokite jį paprogramėje. Galite pavadinti kaip norite.
Private Sub StartEvents () Nustatykite AppE = New MyAppEvents End Sub
- Vykdykite šį kodą naudodami klavišą F5. Pasirinktinai galite priskirti šią makrokomandą darbalapio mygtukui, jei norite pradėti įvykius iš darbalapio.
Ir tai daroma. Dabar, kai keisite lapus, pasirodys pranešimų langelis su darbaknygės ir lapo pavadinimu, kol bus atidarytas kodas, kuriame yra darbaknygė.
Ar buvo sunku? Nemanau. Leiskite man žinoti, ką manote toliau pateiktame komentarų skyriuje.
VBA programų įvykių įjungimas ir išjungimas
Paleidus makrokomandą įprastame modulyje, ji bus aktyvuojama visada, kol uždarysite darbaknygę, kurioje yra įvykiai. Bet galbūt norėsite, kad jie įjungtų ir išjungtų jūsų nuožiūra. Yra du būdai tai padaryti.
- Panaikinkite įvykio objektą
- Nustatykite EnableEvents kaip False
1. Įvykio objekto panaikinimas
Atskiroje paprogramėje nustatykite įvykio objektą Nieko
Private Sub StopEvents () Set AppE = Nothing End Sub
Kai paleisite šį kodą, įvykiai nustos veikti. Jei norite sustabdyti įvykius, galite įdėti jį į darbalapio mygtuką. Dabar turėsite du mygtukus pradėti ir sustabdyti šiuos konkrečius įvykius. Tai tiesiog sustabdys „AppE“ objekto sukurtus įvykius.
2. Nustatykite EnableEvents į False
Antrasis būdas yra išjungti įvykius. Kad visi įvykiai būtų nepasiekiami, mes nustatome „Application“ klasės ypatybę „EnableEvents“ į Netiesa.
Private Sub StopEvents () Application.EnableEvents = False End Sub
Aukščiau pateiktas kodas išjungs visus įvykius. Net numatytieji „Excel“ įvykiai. Jie neveiks, kol vėl jų nepradėsite. Net jei vykdysite „StartEvents“ () paprogramę (aukščiau), įvykis neveiks. Kad visi įvykiai vėl veiktų, turėsite dar kartą nustatyti „EnableEvents“ ypatybę į „True“.
Taigi, jei norite, kad jūsų įvykiai veiktų kiekvieną kartą, kai pradedate įvykius, pridėkite šią kodo eilutę.
Private Sub StartEvents () Application.EnableEvents = True Set AppE = New MyAppEvents End Sub
„Custome Application“ įvykių pradžia kiekvieną kartą atidarius darbaknygę
Jei kuriate įrankį galutiniam vartotojui, galbūt norėsite, kad įvykiai veiktų automatiškai. Tokiu atveju įvykio paleidimo priemonę galite įdėti į darbaknygės objektą su „Workbook_open“ () įvykiu, o ne į įprastą modulį. Taip įvykio objektas bus inicijuotas, kai tik atidarysite darbaknygę, kurioje yra įvykiai.
Taigi taip, vaikinai, taip galite naudoti programos įvykį „Excel“. Leiskite man žinoti, ar tai buvo pakankamai aiškinantis ir padėjo jums suprasti programos lygio įvykius „Excel VBA“ žemiau esančiame komentarų skyriuje. Jei turite ką pridurti, taip pat užsirašykite. Žemiau esančiame komentarų skyriuje galite užduoti savo klausimus, susijusius su šiuo straipsniu ar bet kuria kita su „VBA“ susijusia tema.
Atsisiųskite žemiau esantį darbo failą:
Įvykiai „Excel VBA“ | „Excel“ yra septynių tipų įvykiai. Kiekvienas renginys yra skirtingos apimties. Programos įvykis susijęs su darbaknygės lygiu. Darbo knyga lapų lygiu. Darbo lapo įvykis diapazono lygiu.
Užduoties įvykiai „Excel VBA“| Skaičiuoklės įvykis yra tikrai naudingas, kai norite, kad jūsų makrokomandos būtų paleistos, kai lape įvyksta nurodytas įvykis.
Darbaknygės įvykiai naudojant VBA „Microsoft Excel“ | Darbo knygos įvykiai veikia su visa darbo knyga. Kadangi visi lapai yra darbo knygos dalis, šie įvykiai taip pat tinka jiems.
Neleiskite automato/eventmacro vykdyti naudojant „Microsoft Excel“ VBA| Norėdami užkirsti kelią automatinio atidarymo makrokomandai, naudokite klavišą „Shift“.
Diagramuokite objekto įvykius naudodami VBA programoje „Microsoft Excel“| Diagramos yra sudėtingi objektai, prie kurių pridedate kelis komponentus. Norėdami sudaryti diagramos įvykius, naudojame klasės modulį.
Populiarūs straipsniai:
50 „Excel“ nuorodų, skirtų produktyvumui padidinti | Greičiau atlikite savo užduotį. Šie 50 sparčiųjų klavišų dar labiau pagreitins jūsų darbą naudojant „Excel“.
„VLOOKUP“ funkcija „Excel“ | Tai yra viena iš dažniausiai naudojamų ir populiariausių „Excel“ funkcijų, naudojama norint ieškoti vertės iš įvairių diapazonų ir lapų.
COUNTIF „Excel 2016“ | Naudodami šią nuostabią funkciją, suskaičiuokite reikšmes su sąlygomis. Norint suskaičiuoti konkrečią vertę, nereikia filtruoti duomenų. Skaitiklio funkcija yra būtina norint paruošti prietaisų skydelį.
Kaip naudoti „SUMIF“ funkciją „Excel“ | Tai dar viena esminė prietaisų skydelio funkcija. Tai padeda apibendrinti vertes konkrečiomis sąlygomis.