Dogodki na delovnem listu v Excelu VBA

Kazalo:

Anonim

Morda boste želeli zagnati svoj delček makra/VBA, ko celica spremeni svojo vrednost, ko se zgodi dvojni klik, ko je izbran list itd. V vseh teh primerih uporabljamo orodje za obdelavo dogodkov delovnega lista. Vodnik dogodkov nam pomaga zagnati kodo VBA, kadar koli se zgodi določen dogodek.

V tem članku bomo na kratko spoznali vsak upravljavec dogodkov na delovnem listu.

Kaj je upravljavec dogodkov delovnih listov?

Obdelovalec dogodkov na delovnem listu je podprogram, ki je lokalni za modul delovnega lista.

Kam napisati kodo za obdelavo dogodkov na delovnem listu?

Dogodki na delovnem listu so zapisani samo v predmetih listov. Če dogodek delovnega lista napišete v kakšen modul ali modul razreda, ne bo nobene napake, ampak preprosto ne bodo delovale.

Za pisanje v objekt lista. Dvokliknite nanjo ali z desno tipko miške in kliknite kodo pogleda. Prikazalo se bo območje za pisanje kode.

Kako napisati kodo za določen dogodek na delovni list?

Ko ste v načinu za urejanje, boste v spustnem meniju v zgornjem levem kotu videli splošno. Kliknite spustni meni in izberite delovni list. Zdaj bodo v spustnem meniju v zgornjem desnem kotu prikazani vsi dogodki. Izberite, kar potrebujete, in za vas bo napisana skeletna koda za ta dogodek.

Vsak dogodek ima določeno ime postopka. To so imena rezerviranih podprogramov. Ne morete jih uporabiti za druge podprograme na listu. V modulu bodo delovali kot običajna podprogram.

Pomembno: Vsaka podprogram s tega seznama se bo izvajala ob podanem dogodku.
Eno vrsto dogodka na delovnem listu je mogoče zapisati samo enkrat na en list. Če na en list napišete dva enaka postopka obravnave dogodkov, bo prišlo do napake in nobeden od njiju ne bo izveden. Seveda bodo napake dvoumne podprograme.

Na kratko se seznanimo z vsakim dogodkom.

1. TheWorksheet_Change (cilj ByVal kot obseg)Dogodek

Ta dogodek se sproži, ko spremenimo vsebovanje delovnih listov (oblikovanje izključeno). Če želite nekaj narediti na celotnem listu, bo koda naslednja:

Private Sub Worksheet_Change (ByVal Target As Range) 'naredi nekaj Msgbox "naredil nekaj" End Sub 

"Cilj" je vedno aktivna celica.

Še en primer: če se A1 spremeni, boste morda želeli datum in čas vnesti v celico B1. V tem primeru uporabimo dogodek worksheet_change. Koda bi izgledala takole:

Private Sub Worksheet_Change (ByVal Target As Range) Če Target.Address = "$ A $ 1" Potem Range ("B1"). Value2 = Format (Now (), "hh: mm: ss") End If End Sub 

To bo ciljalo samo na celico A1.

Če želite ciljati na obseg, uporabite spodnji primer:

Zaženite makro, če je na listu v določenem obsegu prišlo do kakršne koli spremembe

2. TheWorksheet_SelectionChange (cilj ByVal kot obseg)Dogodek

Kot že ime pove, se ta dogodek sproži, ko se izbira spremeni. Z drugimi besedami, če je kazalec v celici A1 in se premakne v drugo celico, se bo koda v tej podprogramu zagnala.

Spodnja koda bo spremenila barvo aktivnih celic, če se bo spremenila in če je to enakomerna vrstica.

Private Sub Worksheet_SelectionChange (ByVal Target As Range) Če je Target.Row Mod 2 = 0 Potem Target.Interior.ColorIndex = 22 End If End Sub 

Zdaj, ko se kazalec premakne na enakomerno vrstico, bo obarvan. Celice neparnih vrstic bodo prihranjene.

Še en primer dogodka Worksheet_SelectionChange:

Najpreprostejša koda VBA za označevanje trenutne vrstice in stolpca

3. The Delovni list_Activate () Dogodek

Ta dogodek se sproži, ko se aktivira koda dogodka, ki vsebuje list. Skeletna koda za ta dogodek je:

Zasebni pod -delovni list_Activate () Konec pod -pod 

Preprost primer je prikaz imena lista, ko je izbran.

Zasebni pod -delovni list_Activate () MsgBox "Ste na" & ActiveSheet.Name Konec 

Takoj, ko pridete na list, ki vsebuje to kodo, se bo dogodek zagnal in prikazalo se bo sporočilo, da ste "na naslovu lista" (list 2 je v mojem primeru).

4. The Delovni list_Deactivate () Dogodek

Ta dogodek se sproži, ko zapustite kodo, ki vsebuje list. Z drugimi besedami, če želite nekaj narediti, na primer skriti vrstice ali karkoli, ko zapustite list, uporabite ta dogodek VBA. Sintaksa je:

Private Sub Worksheet_Deactivate () 'your code' End Sub 

Spodnji primer dogodka Worksheet_Deativate bo preprosto prikazal sporočilo, da ste zapustili glavni list, ko boste zapustili ta list.

Zasebni pod -delovni list_Deactivate () MsgBox "Zapustil si glavni list" End Sub 

5. The Delovni list_BeforeDelete ()Dogodek

Ta dogodek se sproži, ko potrdite brisanje lista dogodkov VBA. Sintaksa je preprosta:

Zasebni pod -delovni list_BeforeDelete () Konec pod 

Spodnja koda vas bo vprašala, ali želite kopirati vsebino lista za brisanje.

Zasebni pod -delovni list_BeforeDelete () ans = MsgBox ("Ali želite kopirati vsebino tega lista na nov list?", VbYesNo) If ans = True Then "koda za kopiranje End If End Sub 

6. The Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) Dogodek

Ta dogodek se sproži, ko dvakrat kliknete na ciljno celico. Sintaksa tega dogodka delovnega lista VBA je:

Zasebni pod -delovni list_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) End Sub 

Če ne nastavite ciljne celice ali obsega, se bo sprožil ob vsakem dvojnem kliku na listu.
Spremenljivka Cancel je logična spremenljivka. Če nastavite vrednost True, se privzeto dejanje ne bo zgodilo. To pomeni, da če dvakrat kliknete celico, ne bo prišla v način urejanja.
S spodnjo kodo se celica napolni z barvo, če dvokliknete katero koli celico.

Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) Cancel = True Target.Interior.ColorIndex = 7 End Sub 

Spodnja koda cilja na celico A1. Če je že napolnjena z določeno barvo, bo izginila. To je podobno kot gumb ali potrditveno polje.

Zasebna pod Delovni list_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Če je Target.Address = "$ A $ 1", potem Prekliči = True Če je Target.Interior.ColorIndex = 4 Potem Target.Interior.ColorIndex = xlColorIndexNone Else Target.Interior.ColorIndex = 4 End Če End If End Sub 

7. The Worksheet_BeforeRightClick (ByVal Target As Range, Cancel As Boolean) Dogodek

Ta dogodek se sproži, ko z desno miškino tipko kliknete ciljno celico. Sintaksa tega dogodka delovnega lista VBA je:

Zasebna pod Delovni list_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Cancel = True "vaša koda" End Sub 

Spodnja koda bo celico napolnila z vrednostjo 1, če jo kliknete z desno miškino tipko. Ne bo prikazala privzetih možnosti desnega klika, ker smo operator "Prekliči" nastavili na True.

Private Sub Worksheet_BeforeRightClick (ByVal Target As Range, Cancel As Boolean) Cancel = True Target.Value = 1 End Sub 

8. The Delovni list_Zračunaj () Dogodek

Če želite, da se kaj zgodi, ko Excel izračuna list, uporabite ta dogodek. Sprožil se bo, ko Excel izračuna list. Sintaksa je preprosta:

Private Sub Worksheet_Calculate () '' vaša koda 'End Sub 

6. The Worksheet_FollowHyperlink (cilj ByVal kot hiperpovezava)Dogodek

Ta postopek se zažene, ko kliknete hiperpovezavo na listu. Osnovna skladnja tega upravljalca dogodkov je:

Private Sub Worksheet_FollowHyperlink (ByVal Target As Hyperlink) '' vaša koda 'End Sub 

Če želite, lahko nastavite ciljno hiperpovezavo. Če ne nastavite ciljne hiperpovezave, se bo izvedla, če kliknete katero koli hiperpovezavo na listu s kodo.

Torej, fantje, to so bili nekateri osnovni dogodki na delovnem listu, ki bodo pri roki, če veste o njih. Spodaj je nekaj sorodnih člankov, ki bi jih morda radi prebrali.

Če dvomite o tem članku ali katerem koli drugem članku, povezanem z excelom/VBA, nam to sporočite v spodnjem razdelku za komentarje.

Uporaba dogodka spremembe delovnega lista za zagon makra, ko pride do kakršne koli spremembe| Zato za zagon makra vsakič, ko se list posodobi, uporabljamo dogodke delovnega lista VBA.

Zaženite makro, če je na listu v določenem obsegu prišlo do kakršne koli spremembe| Če želite zagnati kodo makra, ko se vrednost v določenem obsegu spremeni, uporabite to kodo VBA. Zazna vsako spremembo v določenem obsegu in sproži dogodek.

Najpreprostejša koda VBA za označevanje trenutne vrstice in stolpca z uporabo | S tem majhnim delčkom VBA označite trenutno vrstico in stolpec lista.

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.