Kako ustvariti dogodke na ravni aplikacije v Excelu VBA

Kazalo:

Anonim

Dogodki na ravni aplikacije delujejo na celotni aplikaciji (Excel v tem priročniku). Toda aktiviranje dogodka aplikacije ni tako enostavno kot ustvarjanje dogodkov delovnega zvezka ali delovnega lista. Zagotavljam pa vam, da tudi to ni tako zapleteno. V tem članku se bomo naučili, kako v nekaj preprostih korakih ustvariti in uporabiti aplikacijski dogodek v Excelu VBA.

1. korak: Ustvarite objekt dogodka v modulu razreda

Za ustvarjanje predmeta dogodka moramo uporabiti modul razreda.

  • Vstavite modul razreda. Poimenujte ga, kot želite. Poimenoval sem ga MyAppEvents.
  • Določite spremenljivko dogodka vrste aplikacije s ključno besedo WithEvents.
    Zasebno WithEvents myApp As Application
  • Inicializirajte ta dogodek v podprogramu class_initialize ().
    V spustnem meniju na levi izberite razred. Nato v zgornjem desnem spustnem meniju izberite inicializiraj.

    Zasebni podrazred_Initialize () Nastavi myApp = Podrejen konec aplikacije
  • Zdaj določite dogodke, ki jih želite uporabiti. V spustnem meniju zgoraj levo izberite predmet dogodka. Vsi razpoložljivi postopki za obravnavo dogodkov vam bodo na voljo v spustnem meniju zgoraj desno. Izberite, kar potrebujete, in določite, kaj želite storiti, ko se sproži ta dogodek.
    Uporabljam dogodek SheetActivate. Kadar koli bo uporabnik preklapljal med listi odprtega delovnega zvezka, bo prikazano ime delovnega zvezka in uporabnik lista, ki ga je izbral.

    Zasebna podpora myApp_SheetActivate (ByVal Sh As Object) MsgBox ActiveWorkbook.Name & "-" & Sh.Name End Sub 

Tu lahko določite toliko dogodkov, ki jih želite definirati.

Dogodki ne bodo začeli delovati takoj. To je bil prvi korak. Ker je to razredni modul, moramo ustvariti njegov objekt, da aktiviramo dogodke.

Zdaj moramo te dogodke začeti le iz običajne podprograme.

2. korak: Ustvarite podprogram za zagon dogodka v običajnem modulu

Zdaj imamo dogodek. Ustvariti moramo samo predmet tega razreda in ga inicializirati. Ko zaženemo to podprogram, bodo vsi definirani dogodki v razredu dogodkov začeli delovati.

  • Vstavite običajen modul.
  • Določite spremenljivko razreda, ki ste ga ustvarili.
    Zasebni AppE kot MyAppEvents
  • Inicializirajte ga v podprogramu. Lahko ga poimenujete, kot želite.
    Private Sub StartEvents () Set AppE = New MyAppEvents End Sub
  • To kodo zaženite s tipko F5. Po želji lahko ta makro dodelite gumbu na delovnem listu, če želite začeti dogodke z delovnega lista.

In to je storjeno. Zdaj, ko zamenjate liste, se prikaže sporočilo z imenom delovnega zvezka in lista, dokler je odprta koda, ki vsebuje delovni zvezek.

Je bilo težko? Mislim, da ne. Povejte mi, kaj mislite v spodnjem oddelku za komentarje.

Vklop in izklop dogodkov aplikacije VBA

Ko zaženete makro v običajnem modulu, se bo sprožil vedno, dokler ne zaprete delovnega zvezka, ki vsebuje dogodke. Morda pa boste želeli, da jih po vaši volji vklopijo in izklopijo. To lahko storite na dva načina.

  • Izniči predmet dogodka
  • EnableEvents nastavite na False

1. Izničevanje predmeta dogodka

V ločeni podprogrami nastavite predmet dogodka na Nič

Private Sub StopEvents () Set AppE = Nothing End Sub

Ko zaženete to kodo, bodo dogodki prenehali delovati. Za ustavitev dogodkov ga lahko vnesete v gumb na delovnem listu. Zdaj boste imeli dva gumba za zagon in ustavitev teh posebnih dogodkov. Prenehal bo le dogodke, ki jih ustvari objekt AppE.

2. EnableEvents nastavite na False

Druga metoda je onemogočanje dogodkov. Če želite, da so vsi dogodki neopazni, nastavimo lastnost EnableEvents razreda Application na Napačno.

Private Sub StopEvents () Application.EnableEvents = False End Sub

Zgornja koda onemogoči vse dogodke. Tudi privzeti dogodki v Excelu. Ne bodo delovali, dokler jih znova ne zaženete. Tudi če zaženete podprogram StartEvents () (zgoraj), dogodek ne bo deloval. Če želite, da vsi dogodki znova delujejo, boste morali lastnost EnableEvents znova nastaviti na True.

Če torej želite, da vaši dogodki delujejo vsakič, ko zaženete dogodke, dodajte to vrstico kode v podpodročje.

Private Sub StartEvents () Application.EnableEvents = True Set AppE = New MyAppEvents End Sub

Zagon dogodkov aplikacije Customerme ob vsakem odpiranju delovnega zvezka

Če razvijate orodje za končnega uporabnika, boste morda želeli, da dogodki delujejo samodejno. V tem primeru lahko zaganjalnik dogodka postavite v objekt Delovni zvezek z dogodkom Workbook_open (), namesto v običajnem modulu. Tako bo vaš objekt dogodka inicializiran takoj, ko odprete delovni zvezek, ki vsebuje dogodke.

Torej, fantje, tako lahko uporabite aplikacijski dogodek v Excelu. Sporočite mi, če je bilo to dovolj razlago in vam je pomagalo razumeti dogodke na ravni aplikacije v Excelu VBA v spodnjem razdelku za komentarje. Če imate k temu kaj dodati, zapišite tudi to. V spodnjem razdelku za komentarje lahko postavite svoja vprašanja v zvezi s tem člankom ali katero koli drugo temo, povezano z Excelom VBA.

Spodaj prenesite delovno datoteko:

Dogodki v Excelu VBA | V Excelu je sedem vrst dogodkov. Vsak dogodek obravnava drugačen obseg. Dogodek aplikacije obravnava na ravni delovnega zvezka. Delovni zvezek na ravni listov. Dogodek delovnega lista na ravni območja.

Dogodki na delovnem listu v Excelu VBA| Dogodek delovnega lista je zelo uporaben, če želite, da se makri izvajajo, ko se na listu pojavi določen dogodek.

Dogodki v delovnem zvezku z uporabo VBA v programu Microsoft Excel | Dogodki v delovnem zvezku delujejo na celotnem delovnem zvezku. Ker so vsi listi del delovnega zvezka, tudi ti dogodki delujejo na njih.

Preprečite samodejno izvajanje/makro dogodkov z uporabo VBA v programu Microsoft Excel| Če želite preprečiti zagon makra auto_open, uporabite tipko shift.

Grafične dogodke grafikona z uporabo VBA v programu Microsoft Excel| Grafikoni so zapleteni predmeti in nanje ste pritrdili več komponent. Za ustvarjanje dogodkov grafikona uporabljamo modul razreda.

Priljubljeni članki:

50 bližnjic v Excelu za večjo produktivnost | Poskrbite, da bo vaša naloga hitrejša. Teh 50 bližnjic bo vaše delo v Excelu še pospešilo.

Funkcija VLOOKUP v Excelu | To je ena najpogosteje uporabljenih in priljubljenih funkcij programa Excel, ki se uporablja za iskanje vrednosti iz različnih obsegov in listov.

COUNTIF v Excelu 2016 | Štejte vrednosti s pogoji s to neverjetno funkcijo. Za štetje določene vrednosti vam ni treba filtrirati podatkov. Funkcija Countif je bistvena za pripravo vaše armaturne plošče.

Kako uporabljati funkcijo SUMIF v Excelu | To je še ena bistvena funkcija armaturne plošče. To vam pomaga povzeti vrednosti za posebne pogoje.