Možda ćete htjeti pokrenuti svoj makro/VBA isječak kada je odabrana određena radna knjiga, izabran je list u radnoj knjizi, ćelija mijenja svoju vrijednost, kada se dogodi dvostruki klik, kad se doda list itd. U svim tim slučajevima koristimo Voditelj događaja radne knjige. Rukovalac događajima pomaže nam pokrenuti VBA kôd kad god se dogodi određeni događaj.
U ovom ćemo članku ukratko naučiti o svakom vodiču događaja u radnoj knjizi.
Što je upravljač događajima iz radne knjige?
Rukovatelj događajima radne knjige je potprogram koji je lokalni za radnu knjigu. Ovi kodovi rade samo na komponentama radne knjige. To su sama radna bilježnica, njezini listovi i rasponi.
Gdje napisati kôd za rukovanje događajima radne knjige?
Događaji radne knjige zapisani su samo u objekt radne knjige. Ako događaj u radnoj knjizi napišete u neki normalni modul, neće biti greške, ali jednostavno neće raditi.
Za pisanje u objekt radne knjige. Dvaput kliknite na nju ili desnom tipkom miša kliknite kôd prikaza. Prikazat će se područje za pisanje koda.
Kako napisati kôd za određeni događaj u radnu knjigu?
Sada kada ste u načinu uređivanja, u padajućem izborniku u gornjem lijevom kutu vidjet ćete općenito. Pritisnite padajući izbornik i odaberite radnu knjigu. U padajućem izborniku u gornjem desnom kutu prikazat će se svi događaji. Odaberite što god vam je potrebno i za vas će biti napisan skeletni kôd za taj događaj.
Svaki događaj ima fiksni naziv postupka. Ovo su rezervirani nazivi potprograma koji počinju s radna knjiga_. Ne možete ih koristiti za druge potprograme
(možete, ali to će biti normalne potprogrami).
Važno: Svaka podrutina s tog popisa izvodit će se na navedenom događaju.
Jedna vrsta postupka u radnoj knjizi može se zapisati samo jednom u jednu radnu knjigu. Ako u jednu radnu knjigu upišete dva ista postupka upravljanja događajima, to će rezultirati pogreškom i nitko od njih neće biti izveden. Naravno, greška će biti dvosmislene potprogrami.
Naučimo ukratko svaki događaj.
1. The Workbook_SheetChange (ByVal Sh kao objekt, ByVal cilj kao raspon) Događaj
Ovaj se događaj aktivira kad napravimo bilo kakvu promjenu na radnim listovima (oblikovanje je isključeno). Ako želite učiniti nešto ako se u bilo kojem listu napravi promjena, kôd će biti:
Private Sub Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Range) 'do something Msgbox "done done" End Sub
"Sh" je uvijek aktivni list. "Cilj" je uvijek aktivna ćelija.
Još jedan primjer: Možda ćete htjeti datum i vrijeme staviti u Cel, prl B1 ako se A1 promijeni. U tom slučaju koristimo događaj workbook_sheetchange. Kod bi izgledao ovako:
Private Sub Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$ A $ 1" then Range ("B1"). Value2 = Format (Now (), "hh: mm: ss") End If Kraj podm
Ovo će ciljati samo ćeliju A1 na svakom listu jer nismo naveli objekt "sh".
2. The Radna knjiga_Activate () Događaj
Ovaj se događaj pokreće kada se aktivira kôd događaja koji sadrži radnu knjigu. Skeletni kod za ovaj događaj je:
Private Sub Workbook_Activate () End Sub
Jednostavan primjer prikazuje naziv radne knjige kada se odabere.
Private Sub Workbook_Activate () MsgBox "You are on workbook" & Activeworkbook.Name End Sub
Čim dođete u radnu knjigu koja sadrži ovaj kôd, događaj će se pokrenuti i prikazat će se poruka "Vi ste na radnoj knjizi" (list2 je u mom slučaju).
3. The Radna knjiga_Otvoreno () Događaj
Ovo je jedno od najčešćih pitanja kako pokrenuti makro čim se radna knjiga otvori. Ovo je odgovor. Ovaj događaj radne knjige pokreće se čim se radna knjiga otvori. Za razliku od Workbook_Activate () ovaj kôd radi samo jednom, a ne svaki put kada se aktivira.
Private Sub Workbook_Open () 'your code' End Sub
Primjer u nastavku Workbook_Open događaj jednostavno će iskočiti poruku dobrodošlice, kada otvorite kôd koji sadrži radnu knjigu.
Private Sub Workbook_Open () MsgBox "Dobrodošli u glavnu datoteku" Kraj pod
4. The Radna knjiga_Deaktiviraj () Događaj
Ovaj se događaj aktivira pri napuštanju koda koji sadrži radnu knjigu. Drugim riječima, ako želite učiniti nešto, poput skrivanja listova ili bilo čega drugog prilikom promjene radne knjige, upotrijebite ovaj VBA događaj. Sintaksa je:
Private Sub Workbook_Deactivate () 'your code' End Sub
Primjer u nastavku Događaj Workbook_Deativate jednostavno će prikazati poruku da ste napustili glavni list kada napustite ovaj list.
Private Sub Workbook_Deactivate () MsgBox "Napustili ste glavni list" Završite pod
5. The Radna bilježnica_Prije zatvaranja () Događaj
Ovaj se događaj aktivira kada potvrdite brisanje lista koji sadrži VBA događaj. Sintaksa je jednostavna:
Private Sub Workbook_BeforeClose (Cancel as Boolean) End Sub
Poništavanje se može postaviti na true ako radnu knjigu želite držati otvorenom.
Kôd u nastavku će vas pitati želite li spremiti sadržaj radne knjige o zatvaranju.
Private Sub Workbook_BeforeClose (Cancel as Boolean) ans = MsgBox ("Želite li spremiti sadržaj ove radne knjige?", VbYesNo) If ans = True then thisworkbook.save End If End Sub
6. The Workbook_BeforeSave (ByVal SaveAsUI kao Boolean, Cancel As Boolean) Događaj
Ovaj se događaj aktivira prije spremanja radne knjige. Sintaksa je jednostavna:
Private Sub Workbook_BeforeSave (ByVal SaveAsUI kao Boolean, Cancel As Boolean) End Sub
SaveAsUI postavljeno je na True ako dođe do promjene u radnoj knjizi (ne u VBA -u).
Odustani se može postaviti na true ako radnu knjigu želite sačuvati nespremljenom.
Kôd u nastavku će vas pitati želite li spremiti sadržaj radne knjige koju ćete spremiti.
Private Sub Workbook_BeforeSave (ByVal SaveAsUI Kao Boolean, Odustani kao Boolean) ans = MsgBox ("Želite li doista spremiti sadržaj ove radne knjige?", VbYesNo) If ans = False Onda Cancel = True End If End Sub
7. The Workbook_BeforeSave (ByVal SaveAsUI kao Boolean, Cancel As Boolean) Događaj
Ovaj se događaj aktivira prije spremanja radne knjige. Sintaksa je jednostavna:
Private Sub Workbook_BeforeSave (ByVal SaveAsUI kao Boolean, Cancel As Boolean) End Sub
SaveAsUI postavljeno je na True ako dođe do promjene u radnoj knjizi (ne u VBA -u).
Odustani se može postaviti na true ako radnu knjigu želite sačuvati nespremljenom.
Kôd u nastavku će vas pitati želite li spremiti sadržaj radne knjige koju ćete spremiti.
Private Sub Workbook_BeforeSave (ByVal SaveAsUI Kao Boolean, Odustani kao Boolean) ans = MsgBox ("Želite li doista spremiti sadržaj ove radne knjige?", VbYesNo) If ans = False Onda Cancel = True End If End Sub
8. The Radna knjiga_Novi list (ByVal Sh kao objekt) Događaj
Ovaj se događaj aktivira kada u radnu knjigu dodate novi list. Sintaksa je jednostavna:
Private Sub Workbook_NewSheet (ByVal Sh As Object) End Sub
Sh je objekt lista. Vrsta je zapravo temeljni objekt pa ako dodamo list grafikona, makro list ili dijaloški list, događaj i dalje radi.
Kôd u nastavku će dodati i prikazati naziv lista koji je nedavno dodan.
Private Sub Workbook_NewSheet (ByVal Sh As Object) MsgBox "Dodali ste novi list." & Sh.Name End Sub
Postoji još mnogo događaja objekta radne knjige. Ovdje ne možemo o svima raspravljati. Ako želite znati o nekom određenom događaju, pitajte u donjem odjeljku komentara. Nadam se da sam uspio objasniti osnove događaja iz radne knjige u ovom članku. Javite mi ako vam je pomoglo u odjeljku komentara u nastavku.
Povezani članci:
Korištenje događaja promjene radnog lista za pokretanje makronaredbi kada se izvrši bilo kakva promjena | Dakle, za pokretanje vašeg makronaredbe kad god se list ažurira, koristimo VBA događaje na radnom listu.
Pokrenite makronaredbu ako dođe do promjene na listu u navedenom rasponu | Za pokretanje vašeg makro koda kad se promijeni vrijednost u navedenom rasponu, upotrijebite ovaj VBA kôd. Otkriva svaku promjenu napravljenu u navedenom rasponu i aktivirat će događaj.
Najjednostavniji VBA kôd za označavanje trenutnog retka i stupca pomoću | Pomoću ovog malog isječka VBA označite trenutačni redak i stupac lista.
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 vaš rad još bržim u 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.