Kaip sukurti programos lygio įvykius „Excel VBA“

Turinys:

Anonim

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.