Možda ćete htjeti pokrenuti svoj makro/VBA isječak kada ćelija promijeni svoju vrijednost, kada se dogodi dvostruki klik, kada je odabran list itd. U svim tim slučajevima koristimo alat za obradu događaja radnog lista. 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 upravljaču događajima na radnom listu.
Što je upravljač događajima na radnim listovima?
Rukovalac događajima radnog lista je potprogram koji je lokalni za modul radnog lista.
Gdje napisati kôd za rukovanje događajima na radnom listu?
Događaji radnog lista zapisani su samo u objektima listova. Ako napišete događaj radnog lista u neki modul ili modul klase, neće biti greške, ali jednostavno neće raditi.
Za pisanje u objekt lista. Dvaput kliknite na nju ili kliknite desnom tipkom miša i kliknite kôd prikaza. Prikazat će se područje za pisanje koda.
Kako napisati kôd za određeni događaj na radnom listu?
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 radni list. Sada će se u padajućem izborniku u gornjem desnom kutu prikazati 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. To su rezervirani nazivi potprograma. Ne možete ih koristiti za druge potprograme na listu. U modulu će raditi kao normalna potprogram.
Važno: Svaka podrutina s tog popisa izvodit će se na navedenom događaju.
Jedna vrsta postupka na radnom listu može se zapisati samo jednom na jedan list. Ako napišete dva ista postupka upravljanja događajima na jedan list, 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. TheRadni list_ Promjena (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 je došlo do promjene na cijelom listu, kôd će biti:
Private Sub Worksheet_Change (ByVal Target As Range) 'do somehting Msgbox "done done" End Sub
"Cilj" je uvijek aktivna ćelija.
Drugi primjer: Možda ćete htjeti datum i vrijeme staviti u ćeliju B1 ako se A1 promijeni. U tom slučaju koristimo događaj worksheet_change. Kod bi izgledao ovako:
Privatni podradni list_Promijeni (ByVal cilj kao raspon) Ako Cilj.Address = "$ A $ 1" Zatim raspon ("B1"). Vrijednost2 = Format (Sada (), "hh: mm: ss") Kraj Ako završi sub
Ovo će ciljati samo ćeliju A1.
Ako želite ciljati raspon, upotrijebite donji primjer:
Pokrenite makronaredbu ako dođe do promjene na listu u navedenom rasponu
2. TheRadni list_SelectionChange (ByVal cilj kao raspon)Događaj
Kao što naziv govori, ovaj se događaj pokreće kada se odabir promijeni. Drugim riječima, ako se vaš kursor nalazi u ćeliji A1 i premjesti se u neku drugu ćeliju, kôd u ovoj potprogrami će se pokrenuti.
Kod u nastavku promijenit će boju aktivnih ćelija ako se promijeni i ako je to paran redak.
Privatni pod radni list_SelectionChange (ByVal Target As Range) If Target.Row Mod 2 = 0 Then Target.Interior.ColorIndex = 22 End If End Sub
Sada, kad god se kursor pomakne na parni red, bit će obojen. Neparne ćelije reda biti će pošteđene.
Još jedan primjer događaja Worksheet_SelectionChange:
Najjednostavniji VBA kôd za označavanje trenutnog retka i stupca pomoću
3. The Radni list_Activate () Događaj
Ovaj se događaj aktivira kada se aktivira kôd događaja koji sadrži list. Skeletni kod za ovaj događaj je:
Privatni pomoćni radni list_Activate () Kraj pod
Jednostavan primjer prikazuje naziv lista kad se odabere.
Private Sub Worksheet_Activate () MsgBox "You are on" & ActiveSheet.Name End Sub
Čim dođete na list koji sadrži ovaj kôd, događaj će se pokrenuti i bit će prikazana poruka "Vi ste na imenu lista" (list2 je u mom slučaju).
4. The Radni list_Deactivate () Događaj
Ovaj se događaj aktivira pri napuštanju koda koji sadrži list. Drugim riječima, ako želite učiniti nešto, primjerice sakriti redove ili bilo što kad napustite list, upotrijebite ovaj VBA događaj. Sintaksa je:
Private Sub Worksheet_Deactivate () 'your code' End Sub
Primjer u nastavku Događaj Worksheet_Deativate jednostavno će prikazati poruku da ste napustili glavni list kada napustite ovaj list.
Privatni pod radni list_Deactivate () MsgBox "Napustili ste glavni list" Kraj pod
5. The Radni list_BeforeDelete ()Događaj
Ovaj se događaj aktivira kada potvrdite brisanje lista koji sadrži VBA događaj. Sintaksa je jednostavna:
Privatni pod -radni list_BeforeDelete () Kraj pod
Kôd u nastavku će vas pitati želite li kopirati sadržaj lista o brisanju.
Privatni podradni list_BeforeDelete () ans = MsgBox ("Želite li kopirati sadržaj ovog lista na novi list?", VbYesNo) If ans = True then 'kod za kopiranje End If End Sub
6. The Radni list_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) Događaj
Ovaj se događaj aktivira kada dvaput kliknete na ciljanu ćeliju. Sintaksa ovog događaja VBA radnog lista je:
Privatni pod -radni list_BeforeDoubleClick (ByVal cilj kao raspon, otkaži kao logičko) Kraj pod
Ako ne postavite ciljanu ćeliju ili raspon, aktivirat će se pri svakom dvostrukom kliku na listu.
Varijabla Cancel je logička varijabla. Ako postavite True, zadana radnja se neće dogoditi. To znači da ako dvaput kliknete na ćeliju, ona neće ući u način uređivanja.
Kod u nastavku će ćeliju ispuniti bojom ako dvaput kliknete na bilo koju ćeliju.
Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) Cancel = True Target.Interior.ColorIndex = 7 End Sub
Kod u nastavku cilja ćeliju A1. Ako je već ispunjen navedenom bojom, boja će nestati. To je slično gumbu za potvrdu ili potvrdnom okviru.
Privatna podmornica Radni list_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$ A $ 1" Zatim Cancel = True Ako je Target.Interior.ColorIndex = 4 Zatim Target.Interior.ColorIndex = xlColorIndexNone Else Target.Interior.ColorIndex = 4 End If Kraj ako završi pod
7. The Radni list_BeforeRightClick (ByVal cilj kao raspon, otkaži kao logičko) Događaj
Ovaj se događaj pokreće kada desnom tipkom miša kliknete ciljanu ćeliju. Sintaksa ovog događaja VBA radnog lista je:
Privatna podmornica Radni list_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Cancel = True '' vaš kod 'End Sub
Kôd u nastavku ispunit će ćeliju vrijednošću 1 ako je pritisnete desnom tipkom miša. Neće prikazati zadane opcije desnog klika jer smo operator "Cancel" postavili na True.
Privatni pod -radni list_BeforeRightClick (ByVal cilj kao raspon, otkaži kao logičko) Odustani = True Target.Value = 1 završni podmeni
8. The Radni list_Izračun () Događaj
Ako želite da se nešto dogodi kada Excel izračuna list, upotrijebite ovaj događaj. Pokrenut će se svaki put kada Excel izračuna list. Sintaksa je jednostavna:
Private Sub Worksheet_Calculate () '' vaš kod 'End Sub
6. The Radni list_FollowHyperlink (ByVal cilj kao hiperveza)Događaj
Ovaj postupak će se pokrenuti kada kliknete na hipervezu na listu. Osnovna sintaksa ovog rukovatelja događajima je:
Private Sub Worksheet_FollowHyperlink (ByVal Target As Hyperlink) '' vaš kod 'End Sub
Ako želite, možete postaviti ciljanu hipervezu. Ako ne postavite ciljanu hipervezu, ona će se izvršiti ako kliknete na bilo koju hipervezu na listu s kodom.
Pa da, dečki, ovo su bili neki osnovni radni događaji koji će vam biti korisni ako znate za njih. U nastavku su neki povezani članci koje biste možda voljeli pročitati.
Ako imate bilo kakvih nedoumica u vezi s ovim člankom ili bilo kojim drugim člankom vezanim uz Excel/VBA, javite nam u odjeljku komentara u nastavku.
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.