Begivenheder på applikationsniveau fungerer på hele applikationen (Excel i denne reference). Men det er ikke så let at aktivere programhændelsen som at oprette Workbook eller Worksheet Events. Men jeg kan forsikre dig om, at det ikke også er så svært. I denne artikel lærer vi, hvordan du opretter og bruger applikationshændelsen i Excel VBA i et par enkle trin.
Trin 1: Opret et hændelsesobjekt i et klassemodul
For at oprette et hændelsesobjekt skal vi bruge klassemodulet.
- Indsæt et klassemodul. Navngiv det som du vil. Jeg kaldte det MyAppEvents.
- Definer en hændelsesvariabel for applikationstype med søgeordet WithEvents.
Privat WithEvents myApp som applikation
- Initialiser denne begivenhed i klasse_initialiser () underprogram.
Vælg klasse i rullemenuen til venstre. Vælg derefter initialiser i rullemenuen øverst til højre.Private Sub Class_Initialize () Indstil myApp = Application End Sub
- Definer nu de begivenheder, du vil bruge. Vælg hændelsesobjektet i rullemenuen øverst til venstre. Alle de tilgængelige procedurer for håndtering af begivenheder vil være tilgængelige for dig i rullemenuen øverst til højre. Vælg det, du har brug for, og definer, hvad du vil gøre, når denne begivenhed udløses.
Jeg bruger SheetActivate -begivenheden. Når en bruger skifter mellem ark i en åben projektmappe, viser den navnet på projektmappen, og arkbrugeren har valgt.Private Sub myApp_SheetActivate (ByVal Sh As Object) MsgBox ActiveWorkbook.Name & "-" & Sh.Name End Sub
Du kan definere så mange begivenheder, du vil definere her.
Begivenhederne starter ikke med det samme. Dette var det første skridt. Da det er et klassemodul, skal vi oprette et objekt for det for at få begivenheder til at aktivere.
Nu behøver vi kun at starte disse hændelser fra en normal underprogram.
Trin 2: Opret en begivenhedsstarter -underprogram i normalt modul
Nu har vi en begivenhedstime. Vi skal bare oprette et objekt af den klasse og initialisere det. Når vi kører denne underprogram, begynder alle de definerede hændelser i begivenhedsklassen at fungere.
- Indsæt et normalt modul.
- Definer en variabel af den klasse, du har oprettet.
Privat app som MyAppEvents
- Initialiser det i en underprogram. Du kan navngive det som du vil.
Private Sub StartEvents () Set AppE = New MyAppEvents End Sub
- Kør denne kode ved hjælp af F5 -tasten. Eventuelt kan du tildele denne makro til knappen på regnearket, hvis du vil starte begivenhederne fra regnearket.
Og det er gjort. Når du nu skifter ark, vises der en meddelelsesboks med navnet på projektmappen og arket, så længe koden, der indeholder projektmappen, er åben.
Var det hårdt? Det tror jeg ikke. Lad mig vide, hvad du synes i kommentarfeltet herunder.
Slå VBA -applikationshændelser til og fra
Når du kører makroen i det normale modul, udløses det altid, indtil du lukker den projektmappe, der indeholder begivenhederne. Men du vil måske have dem til at tænde og slukke dem efter din vilje. Der er to måder at gøre dette på.
- Nulstil hændelsesobjektet
- Indstil EnableEvents til Falsk
1. Nullificering af hændelsesobjektet
Indstil hændelsesobjektet til Intet i en separat underprogram
Private Sub StopEvents () Indstil AppE = Intet slutter Sub
Når du kører denne kode, stopper hændelserne med at fungere. Du kan sætte den i en knap på regnearket for at stoppe begivenhederne. Nu har du to knapper til at starte og stoppe disse specifikke begivenheder. Det stopper bare begivenheder, der er oprettet af AppE -objektet.
2. Indstil EnableEvents til Falsk
Den anden metode er at deaktivere begivenhederne. For at gøre alle begivenheder utilgængelige satte vi egenskaben EnableEvents i applikationsklassen til Falsk.
Private Sub StopEvents () Application.EnableEvents = False End Sub
Ovenstående kode deaktiverer alle hændelser. Selv standard excel -begivenheder. De virker ikke, før du starter dem igen. Selvom du kører underprogrammen StartEvents () (ovenfor), fungerer hændelsen ikke. For at få alle hændelser til at fungere igen, skal du indstille egenskaben EnableEvents igen til True.
Så hvis du vil have dine begivenheder til at fungere hver gang du starter begivenhederne, skal du tilføje denne kodelinje i suben.
Private Sub StartEvents () Application.EnableEvents = True Set AppE = New MyAppEvents End Sub
Start Custome Application Events hver gang Workbook åbnes
Hvis du udvikler et værktøj til slutbruger, vil du måske gerne have, at begivenhederne fungerer automatisk. I så fald kan du placere begivenhedsstarteren i Workbook -objektet med Workbook_open () -hændelsen i stedet for i et normalt modul. Dette vil få dit hændelsesobjekt initialiseret, så snart du åbner den projektmappe, der indeholder begivenhederne.
Så ja fyre, sådan kan du bruge applikationshændelsen i excel. Lad mig vide, om dette var forklarende nok og hjalp dig med at forstå begivenheder på applikationsniveau i Excel VBA i kommentarfeltet herunder. Hvis du har noget at tilføje til dette, så skriv det også ned. Du kan stille dine forespørgsler vedrørende denne artikel eller ethvert andet Excel VBA -relateret emne i kommentarfeltet herunder.
Download arbejdsfilen herunder:
Begivenhederne i Excel VBA | Der er syv typer begivenheder i Excel. Hver begivenhed handler i forskellige omfang. Application Event omhandler på projektmappeniveau. Arbejdsbog på arkniveau. Arbejdsarkbegivenhed på rækkevidde.
Regnearket Begivenheder i Excel VBA| Regnearkshændelsen er virkelig nyttig, når du vil have dine makroer kørt, når en bestemt hændelse forekommer på arket.
Arbejdsbogshændelser ved hjælp af VBA i Microsoft Excel | Arbejdsbogshændelserne fungerer på hele projektmappen. Da alle arkene er en del af projektmappen, fungerer disse begivenheder også på dem.
Forhindre, at en automacro/eventmacro udføres ved hjælp af VBA i Microsoft Excel| For at forhindre kørsel af auto_open -makroen skal du bruge shift -tasten.
Kortobjekthændelser ved hjælp af VBA i Microsoft Excel| Diagrammerne er komplekse objekter, og der er flere komponenter, du har knyttet dem til. For at lave diagramhændelserne bruger vi klasse -modulet.
Populære artikler:
50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje gør dit arbejde endnu hurtigere i Excel.
VLOOKUP -funktionen i Excel | Dette er en af de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.
COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke at filtrere dine data for at tælle specifik værdi. Countif -funktion er afgørende for at forberede dit dashboard.
Sådan bruges SUMIF -funktionen i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser.