Programmas līmeņa notikumi darbojas visā lietojumprogrammā (šajā atsaucē Excel). Bet lietojumprogrammas notikuma aktivizēšana nav tik vienkārša kā darbgrāmatas vai darblapas notikumu izveide. Bet es jums apliecinu, ka tas nav tik sarežģīti. Šajā rakstā mēs iemācīsimies izveidot un izmantot lietojumprogrammas notikumu programmā Excel VBA, veicot dažas vienkāršas darbības.
1. darbība: izveidojiet notikuma objektu klases modulī
Lai izveidotu notikuma objektu, mums jāizmanto klases modulis.
- Ievietojiet klases moduli. Nosauciet to, kā vēlaties. Es to nosaucu par MyAppEvents.
- Definējiet lietojumprogrammas tipa notikumu mainīgo ar atslēgvārdu WithEvents.
Privāts ar notikumiem myApp kā lietojumprogramma
- Inicializējiet šo notikumu apakšprogrammā class_initialize ().
Nolaižamajā izvēlnē kreisajā pusē atlasiet klasi. Pēc tam augšējā labajā nolaižamajā izvēlnē atlasiet inicializēt.Privāta apakšklase_Initializēt () Iestatīt myApp = Lietojumprogrammas beigu apakšnodaļa
- Tagad definējiet notikumus, kurus vēlaties izmantot. Nolaižamajā augšējā kreisajā izvēlnē atlasiet notikuma objektu. Visas pieejamās notikumu apstrādes procedūras jums būs pieejamas augšējā labajā nolaižamajā izvēlnē. Atlasiet vajadzīgo un definējiet, ko vēlaties darīt, aktivizējot šo notikumu.
Es izmantoju SheetActivate notikumu. Ikreiz, kad lietotājs pārslēdzas starp atvērtās darbgrāmatas lapām, tajā tiks parādīts darbgrāmatas nosaukums un lapas lietotājs.Private Sub myApp_SheetActivate (ByVal Sh kā objekts) MsgBox ActiveWorkbook.Name & "-" & Sh.Name End Sub
Šeit varat definēt tik daudz notikumu, kādu vēlaties definēt.
Pasākumi nesāks darboties uzreiz. Tas bija pirmais solis. Tā kā tas ir klases modulis, mums ir jāizveido tā objekts, lai notikumi aktivizētos.
Tagad mums šie notikumi jāsāk tikai no parastās apakšprogrammas.
2. darbība. Izveidojiet notikuma sākuma apakšprogrammu parastajā modulī
Tagad mums ir notikumu klase. Mums vienkārši jāizveido šīs klases objekts un jāinicializē. Tiklīdz mēs izpildīsim šo apakšprogrammu, visi definētie notikumi notikumu klasē sāks darboties.
- Ievietojiet parasto moduli.
- Definējiet izveidotās klases mainīgo.
Privāta lietotne kā MyAppEvents
- Inicializējiet to apakšprogrammā. Jūs varat to nosaukt, kā vēlaties.
Private Sub StartEvents () Set AppE = New MyAppEvents End Sub
- Palaidiet šo kodu, izmantojot taustiņu F5. Pēc izvēles šo makro varat piešķirt pogai darblapā, ja vēlaties sākt notikumus no darblapas.
Un tas tiek darīts. Tagad, kad mainīsit lapas, parādīsies ziņojumu lodziņš ar darbgrāmatas un lapas nosaukumu, ja vien ir atvērts kods, kurā ir darbgrāmata.
Vai tas bija grūts? Es tā nedomāju. Ļaujiet man zināt, ko jūs domājat tālāk esošajā komentāru sadaļā.
VBA lietojumprogrammu notikumu ieslēgšana un izslēgšana
Pēc makro palaišanas parastajā modulī tas tiks aktivizēts vienmēr, līdz aizverat darbgrāmatu, kurā ir notikumi. Bet jūs varat vēlēties, lai viņi tos ieslēdz un izslēdz pēc jūsu vēlēšanās. Ir divi veidi, kā to izdarīt.
- Anulējiet notikuma objektu
- Iestatiet EnableEvents uz False
1. Notikuma objekta anulēšana
Atsevišķā apakšprogrammā iestatiet notikuma objektu uz neko
Private Sub StopEvents () Set AppE = Nothing End Sub
Pēc šī koda palaišanas notikumi pārstās darboties. Lai apturētu notikumus, varat to ievietot darblapas pogā. Tagad jums būs divas pogas, lai sāktu un apturētu šos konkrētos notikumus. Tas vienkārši apturēs AppE objekta izveidotos notikumus.
2. Iestatiet EnableEvents uz False
Otra metode ir notikumu atspējošana. Lai padarītu visus notikumus nepieejamus, mēs iestatījām lietojumprogrammas klases rekvizītu EnableEvents uz Nepatiess.
Private Sub StopEvents () Application.EnableEvents = False End Sub
Iepriekš minētais kods atspējos visus notikumus. Pat noklusējuma Excel notikumi. Tie nedarbosies, kamēr jūs tos atkal nesāksit. Pat ja jūs izpildāt StartEvents () apakšprogrammu (iepriekš), pasākums nedarbosies. Lai visi notikumi atkal darbotos, jums vēlreiz jāiestata rekvizīts EnableEvents uz True.
Tātad, ja vēlaties, lai jūsu pasākumi darbotos katru reizi, kad sākat pasākumus, pievienojiet šo koda rindu apakšnodaļai.
Private Sub StartEvents () Application.EnableEvents = True Set AppE = New MyAppEvents End Sub
Custome Application Events sākšana katru reizi, kad tiek atvērta darbgrāmata
Ja izstrādājat rīku galalietotājam, iespējams, vēlēsities, lai notikumi darbotos automātiski. Tādā gadījumā notikuma starteri varat ievietot darbgrāmatas objektā ar notikumu Workbook_open (), nevis parastajā modulī. Tādējādi jūsu notikuma objekts tiks inicializēts, tiklīdz atverat darbgrāmatu, kurā ir notikumi.
Tātad, jā, puiši, šādā veidā varat izmantot lietojumprogrammas notikumu programmā Excel. Ļaujiet man zināt, vai tas bija pietiekami izskaidrojošs un palīdzēja jums saprast lietojumprogrammas līmeņa notikumus programmā Excel VBA zemāk esošajā komentāru sadaļā. Ja jums ir kaut kas piebilstams, pierakstiet arī to. Zemāk komentāru sadaļā varat uzdot savus jautājumus, kas saistīti ar šo rakstu vai jebkuru citu ar excel VBA saistītu tēmu.
Lejupielādējiet zemāk esošo darba failu:
Notikumi programmā Excel VBA | Programmā Excel ir septiņi notikumu veidi. Katrs pasākums ir atšķirīgs. Lietojumprogrammas notikums attiecas uz darbgrāmatas līmeni. Darbgrāmata lapu līmenī. Darblapas notikums diapazona līmenī.
Darblapas notikumi programmā Excel VBA| Darblapas notikums ir patiešām noderīgs, ja vēlaties palaist savus makro, kad lapā notiek noteikts notikums.
Darbgrāmatas notikumi, izmantojot VBA programmā Microsoft Excel | Darbgrāmatas pasākumi darbojas ar visu darbgrāmatu. Tā kā visas lapas ir daļa no darbgrāmatas, šie notikumi darbojas arī pie tām.
Neļaujiet automātam/eventmacro izpildīt, izmantojot Microsoft Excel VBA| Lai novērstu auto_open makro darbību, izmantojiet taustiņu Shift.
Diagrammējiet objektu notikumus, izmantojot VBA programmā Microsoft Excel| Diagrammas ir sarežģīti objekti, un tiem ir pievienotas vairākas sastāvdaļas. Lai izveidotu notikumus diagrammā, mēs izmantojam klases moduli.
Populāri raksti:
50 Excel saīsnes, lai palielinātu produktivitāti | Ātrāk izpildiet savu uzdevumu. Šie 50 saīsnes padarīs jūsu darbu vēl ātrāku programmā Excel.
Funkcija VLOOKUP programmā Excel | Šī ir viena no visbiežāk izmantotajām un populārākajām Excel funkcijām, kas tiek izmantota, lai meklētu vērtību no dažādiem diapazoniem un lapām.
COUNTIF programmā Excel 2016 | Saskaitiet vērtības ar nosacījumiem, izmantojot šo apbrīnojamo funkciju. Jums nav jāfiltrē dati, lai uzskaitītu noteiktu vērtību. Skaitītāja funkcija ir būtiska, lai sagatavotu informācijas paneli.
Kā lietot SUMIF funkciju programmā Excel | Šī ir vēl viena būtiska informācijas paneļa funkcija. Tas palīdz apkopot vērtības noteiktos apstākļos.