Događaji u Excelu VBA

Sadržaj:

Anonim

Općenito, događaji nisu ništa drugo nego se događaju. Isto je i u excelu. No ponekad želimo da se nešto dogodi automatski kada se dogodi određeni događaj. Da bismo učinili nešto kada se određeni događaj dogodi u Excelu, koristimo Excel VBA događaj.

Voditelji događaja Excel VBA: vrste

U Excelu VBA postoji uglavnom 7 vrsta upravljača događajima.

  1. Događaji aplikacije
  2. Događaji iz radne bilježnice
  3. Događaji na radnom listu
  4. Događaji na grafikonu
  5. Događaji na obrascu korisnika
  6. Događaji s kombinacijom tipki (prečaci)
  7. Događaji na vrijeme

Istražimo ih jedno po jedno.

Događaji aplikacije u Excelu

Događaji na razini aplikacije pokreću se kada je aplikacija (Excel) zatvorena, otvorena, aktivirana, zaštićena, nezaštićena itd.

Na razini aplikacije postoji više od 50 vrsta događaja. Stoga ne možemo ovdje raspravljati o svima njima.

Opseg prijavnog događaja:

Ti će događaji raditi na svim Excelovim radnim knjigama, sve dok je kôd koji sadrži radnu knjigu otvoren. Na primjer, ako ste stvorili događaj na razini aplikacije koji će vam reći naziv lista aktivnog lista, tada će se on pokrenuti pri svakoj aktivaciji lista bilo koje radne knjige.

Kako stvoriti upravljač događajima aplikacije u VBA?

Izrada događaja aplikacije pomalo je zeznuta. Ovdje sam to detaljno objasnio primjerom.

Događaji radne knjige u Excelu

Opseg događaja radne bilježnice

Događaji radne knjige rade na cijeloj radnoj knjizi koja sadrži kôd. Događaj može otvoriti, zatvoriti, aktivirati, deaktivirati radnu knjigu, promijeniti list itd.

Gdje napisati događaje iz radne sveske?

Događaji radne knjige zapisani su na objektu radne knjige.

Kako napisati događaj iz radne knjige?

Prati ove korake:

1. U istraživaču projekata dvaput kliknite objekt radne knjige. Prikazat će se područje za pisanje koda. Ovdje su napisani svi događaji obuhvaćeni radnom knjigom.

2. U gornjem lijevom kutu područja za pisanje koda vidjet ćete padajući izbornik. Kliknite na padajući izbornik i odaberite radnu knjigu. Prema zadanim postavkama općenito je.

3. Nakon što odaberete radnu knjigu s lijevog padajućeg izbornika, ona će prema zadanim postavkama umetnuti potprogram događaja workbook_open. No, ako želite koristiti drugu potprogram događaja, odaberite je s padajućeg izbornika u gornjem desnom kutu. Popisat će sve dostupne događaje u radnoj knjizi.

4. Odaberite događaj koji vam je potreban. Radi primjera, biram događaj SheetActivate. Ovaj se događaj aktivira pri svakom odabiru lista u kodu koji sadrži radnu knjigu.

Primjer događaja radne knjige:Ovo je jednostavan primjer. Samo želim prikazati naziv radnog lista koji je aktiviran. U tu svrhu jednostavno koristim događaj SheetActivate u objektu Workbook.

Privatna podmornica Workbook_SheetActivate (ByVal Sh As Object) MsgBox Sh.Name & "Activated" End Sub 

Sada, kad god se aktivira novi list u ovoj radnoj knjizi, ovaj će se događaj aktivirati. Od vas će se zatražiti masaža s aktiviranim nazivom lista.

Znam da ovaj kod nije toliko koristan, ali možete staviti bilo koji skup uputa između ovih redaka. Možete pozvati funkcije i potprograme iz samih modula.

Događaji na radnom listu u Excelu

Svi događaji ciljani na raspon i ćelije zapisani su u događaje na radnom listu. Ovdje možete pročitati o događajima na radnom listu.

Opseg događaja radnog lista

Događaji na radnom listu ciljaju se na raspone i ćelije određenog radnog lista. Događaj radnog lista pokrenut će se na događaje koji se događaju na određenom radnom listu (Radni list koji sadrži kôd).

Gdje su zapisani događaji na radnom listu?

Događaji radnog lista zapisani su na objektu radnog lista.

Kako napisati kôd za rukovanje događajem na radnom listu?

To je isto što i događaji iz radne bilježnice.

1. U istraživaču projekata dvaput kliknite objekt radnog lista. Područje za pisanje koda bit će prikazano za radni list. Svi događaji s opsegom radnog lista zapisani su na ovim radnim listovima.

2. U gornjem lijevom kutu područja za pisanje koda vidjet ćete padajući izbornik. Kliknite na padajući izbornik i odaberite radni list. Prema zadanim postavkama općenito je.

3. Nakon što odaberete radni list s lijevog padajućeg izbornika, on će prema zadanim postavkama umetnuti potprogram događaja worksheet_selectionChange. No, ako želite koristiti drugu potprogram događaja, odaberite je s padajućeg izbornika u gornjem desnom kutu. Popisat će sve dostupne događaje na radnom listu.

4. Odaberite događaj koji vam je potreban. Radi primjera, biram događaj Worksheet_SelectionChange (ByVal Target As Range). Ovaj se događaj aktivira pri svakoj promjeni odabira raspona na listu.

Primjer događaja na radnom listu

Private Sub Worksheet_SelectionChange (ByVal Target As Range) MsgBox "You are in" & Target.Address End Sub 

Gore navedeni događaj zapisan je u listu 1 radne knjige. Ovaj će događaj prikazati adresu raspona, koju ste odabrali na listu s kodom, kad god promijenite odabir raspona. Ispod je još nekoliko primjera događaja na radnom listu.

Događaji radnog lista uglavnom se koriste na dinamičkim nadzornim pločama. Ćelije možete koristiti kao potvrdne okvire ili aktivne odabire kako biste svoje nadzorne ploče učinili dinamičnima.

Ispod je još nekoliko primjera događaja na radnom listu.

Korištenje događaja promjene radnog lista za pokretanje makronaredbi kada se izvrši bilo kakva promjena

Pokrenite makronaredbu ako dođe do promjene na listu u navedenom rasponu

Najjednostavniji VBA kôd za označavanje trenutnog retka i stupca pomoću

Događaji na karti

U Excelu postoje dvije vrste događaja grafikona. Jedan su obično ugrađeni grafikoni o kojima smo ovdje detaljno govorili. To je slično događajima na razini aplikacije.

Drugi je list grafikona. To su posebni listovi koji sadrže samo grafikone povezane s podacima na nekim drugim listovima.

Što se tiče događaja, oni su slični normalnim plahtama.

Gdje napisati događaje na ljestvicama?

Događaji grafikona zapisani su u objektu grafikona. Samo dvaput kliknite na list grafikona da biste otvorili područje koda.

Kako napisati događaje na grafikonu?

Prati ove korake:

1. U istraživaču projekata dvaput kliknite objekt grafikona kako biste otvorili područje koda. Ovdje su napisani svi specifični događaji vezani uz tablicu.

2. U gornjem desnom kutu područja koda vidjet ćete uobičajeni padajući izbornik. Odaberite grafikon s tog padajućeg izbornika.

3. U desnom kutu odaberite željeni događaj.

Na primjer, ako želim učiniti nešto čim korisnik odabere grafikon, upotrijebit ću događaj Chart_Activate.

Primjer: Događaj na tablici

Private Sub Chart_Activate () MsgBox "Grafikon je osvježen" Završni podv 

Gornji dio koda aktivirat će se čim odaberete list grafikona. Ovdje će samo prikazati poruku da je grafikon osvježen, ali možete učiniti mnogo. Kao što možete dinamički odabrati raspon podataka za grafikon prije nego što prikažete ovu poruku.

Ispod je još nekoliko primjera događaja grafikona:

Događaji korisničkog obrasca

Događaj korisničkog obrasca je poput drugih događaja. Na korisničkom se obrascu događa nekoliko događaja. Te događaje možete koristiti za pokretanje događaja.

Gdje napisati događaje Korisničkog obrasca?

Da biste napisali događaj korisničkog obrasca, prvo morate umetnuti UserForm.

1. Zatim desnom tipkom miša kliknite UserForm i kliknite kôd prikaza. Sada će se otvoriti područje koda.

2. Sada u gornjem lijevom kutu odaberite Userform.

3. Na lijevom padajućem izborniku odaberite događaj koji želite upotrijebiti za pokretanje izvršavanja koda.

4. Upišite kod koji želite između koda događaja koda.

Donji primjer jednostavno prikazuje poruku kada je korisnički obrazac aktiviran.

Private Sub UserForm_Activate () MsgBox "Zdravo, dvaput potvrdite svoje podatke." Kraj podm 

Gornji kôd samo prikazuje poruku, ali ovaj događaj možete upotrijebiti za unaprijed popunjavanje obrasca nekim zadanim ulazima ili upotrijebiti podatke o listu za njegovo popunjavanje.

Događaj na ključu

Ti se događaji pokreću kada se pritisne određena tipka ili kombinacija tipki. To je slično stvaranju vlastitih prečaca.

Događaj OnKey zapravo je funkcija ili metoda klase aplikacije koja ima dva argumenta kako je prikazano ispod:

Primjena.ključak Ključ, ["postupak"]

The ključ je ključ ili kombinacija tipki koju želite koristiti kao okidač.

"Postupak" je izborni argument koji je naziv niza procedure ili makronaredbe koju želite pokrenuti. Ako ne definirate postupak, pokrenut će se trenutni postupak.

Gdje napisati Onkey Događaje?

Pa, događaj Onkey možete napisati na bilo koji normalan modul. Radit će u normalnim modulima, ali prvo ćete morati pokrenuti tu potprogram koja sadrži Upute za ključ. Nije baš da ste svaki put pokrenuli makro za korištenje događaja na tipki. Samo jednom ćete morati pokrenuti taj makro pri otvaranju radne knjige.

Ako ne želite pokrenuti makronaredbu koja sadrži Onkey događaje, možete ih staviti u događaj workbook_open () u objektu radne knjige. Uključit će Onkey događaje čim otvorite radnu knjigu koja sadrži Onkey događaje.

Kako napisati rukovatelja Onkey događaja?

Dakle, ako već imate neke makronaredbe koje želite pokrenuti s navedenim prečacem, napišite novi postupak koji će sadržavati popis prečaca. Na primjer, ovdje imam makronaredbu koja prikazuje poruku na kojoj prečica radi.

Sub show_msg () MsgBox "Prečica radi" End Sub 

Sada želim pokrenuti ovaj makro dok pritiskam kombinaciju tipki CTRL+j. Da bih to učinio, pišem donji VBA kod.

Sub Activate_Onkey () Application.OnKey "^j", "show_msg" End Sub

"^" (carate) služi za tipku CTRL. Dolje je tablica za sve ključne skraćenice u excelu VBA.

https://docs.microsoft.com/en-us/office/vba/api/excel.application.onkey

Kako aktivirati događaj Onkey?

Nakon što upišete gornji kôd u modul, ako otvorite Excel prikaz i upotrijebite tipku CTRL+J, to neće raditi. Prvo morate pokrenuti podmeni koji definira OnKey događaje. Zato pokrenite jednom pomoćnu podlogu Activate_Onkey () i tada će raditi za cijelu sesiju. Nakon što zatvorite radnu knjigu koja sadrži definicije na tipki, ona će prestati raditi.

Onkey definicije možete staviti u postupak za koji želite da se dogodi. No tada ćete morati ručno pokrenuti makro. Zato predlažem da se događaji Onkey stave u događaje Workbook_Open. Time će se svi događaji na tipkovnici aktivirati automatski.

Događaj Ontime u Excelu

Kao što naziv govori, događaj Onkey pokreće navedenu potprogram na ili nakon najranijeg mogućeg određenog vremena. Excel može biti zauzet nekim drugim zadacima, primjerice izvršavanjem zbirnih uputa ili u načinu kopiranja u prošlom razdoblju. U tom slučaju može odgoditi događaj Ontime. Zato se argument prikazuje kao najranije vrijeme.

Sintaksa OnTime događaja

Događaj Ontime funkcija je klase Application. Ima dva bitna argumenta i dva izborna argumenta.

Application.Ontime EarliestTime, "Procedure", [LatestTime], [Schedule]

TheNajranije vrijemeje vrijeme kada želite da se vaš postupak pokrene. No Excel će pokrenuti navedenu makronaredbu nakon definiranog najranijeg vremena, samo nakon što je besplatna.

The "Postupak" je naziv postupka koji želite pokrenuti u navedeno vrijeme.

Kao što sam rekao, nema jamstva da će Excel pokrenuti vaš postupak u određeno vrijeme. The Zadnje vrijemeje vrijeme nakon najranijeg vremena da Excelu date prozor da bude slobodan i izvrši vaš zadatak.

Ako želite deaktivirati zakazani događaj OnTime, tada postaviteraspored do lažne.

Gdje napisati izvanredni događaj?

Događaj OnTime može se zapisati u bilo koji modul. Morat ćete izvršiti događaj koji sadrži postupak za aktiviranje događaja.

Ako želite da se vaš događaj aktivira čim otvorite radnu knjigu koja sadrži događaj, stavite je u događaj workbook_open. Aktivirat će događaj čim otvorite kôd koji sadrži događaj u Excelu.

Kako napisati izvanredni događaj?

Recimo da imate potprogram koji prikazuje trenutni datum i vrijeme

Sub show_msg () MsgBox "Trenutni datum i vrijeme su" & Sada završi pod

Sada, ako želite da se ovaj postupak pokrene nakon 5 sekundi izvođenja drugog makroa, morat ćete staviti ovaj kôd.

Sub OnTimeTest () '-neki drugi zadaci Application.ontime Now + (5 /24 /60 /60), "show_msg" End Sub

Nakon što pokrenete potprogram OnTimeTest, nakon pet sekundi njenog pokretanja pokrenut će se potprogram show_msg. Zato će biti dobro ako želite učiniti nešto nakon što ste nekoliko puta radili nešto drugo, upotrijebite gornju strukturu.

Ako želite da se vaš makro pokrene nakon svakih nekoliko sekundi/minuta/sati/itd., Tada možete pozvati tu funkciju. Bila bi to neka vrsta rekurzivne podrutine.

Sub OnTimeTest () MsgBox "Trenutni datum i vrijeme su" & Now Application.ontime Now + (5 /24 /60 /60), "OnTimeTest" End Sub

Gornja se potprogram pokreće nakon svakih pet sekundi nakon što je pokrenete.

Pa da, dečki, ovo su događaji u Excelu VBA. Neke od gore navedenih kategorija imaju niz pokretača raznih događaja. Naravno, ne mogu ovdje sve objasniti. To će članak učiniti dugačkim za knjigu. Ovo je bio samo uvod u događaje dostupne u Excelu VBA. Za više informacija slijedite veze ugrađene u članke. U nastavku sam spomenuo neke povezane članke. Možete ih i pročitati.

Ako imate bilo kakvih nedoumica vezanih uz ovaj članak ili bilo koju drugu excel/VBA misao, pitajte nas u odjeljku komentara u nastavku.

Događaji na radnom listu u Excelu VBA| Događaj radnog lista zaista je koristan kada želite da se vaše makronaredbe izvode kada se na listu pojavi određeni događaj.

Događaji radne knjige koristeći VBA u programu Microsoft Excel | Događaji u radnoj knjizi rade na cijeloj radnoj knjizi. Budući da su svi listovi dio radne bilježnice, ovi događaji djeluju i na njih.

Spriječite automatsko pokretanje/makro događaja pomoću VBA u programu Microsoft Excel | Da biste spriječili pokretanje makronaredbe auto_open, koristite tipku shift.

Zabilježite događaje objekta pomoću VBA u programu Microsoft Excel | Grafikoni su složeni objekti i postoji nekoliko komponenti koje ste im pridružili. Za izradu Chart Events -a koristimo Class modul.

Popularni članci:

50 Excel prečaca za povećanje vaše produktivnosti | Budite brži u izvršavanju svojih zadataka. Ovih 50 prečaca učinit će da radite još brže na Excelu.

Funkcija VLOOKUP u Excelu | Ovo je jedna od najčešće korištenih i popularnih funkcija programa Excel koja se koristi za traženje vrijednosti iz različitih raspona i listova.

COUNTIF u Excelu 2016 | Brojte vrijednosti s uvjetima pomoću ove nevjerojatne funkcije. Ne morate filtrirati svoje podatke da biste računali određenu vrijednost. Funkcija Countif bitna je za pripremu vaše nadzorne ploče.

Kako koristiti funkciju SUMIF u Excelu | Ovo je još jedna bitna funkcija nadzorne ploče. To vam pomaže pri zbrajanju vrijednosti u posebnim uvjetima.