Laskentataulukon tapahtumat Excel VBA: ssa

Sisällysluettelo:

Anonim

Haluat ehkä suorittaa makro-/VBA -koodinpätkän, kun solu muuttaa arvoa, kun kaksoisnapsautus tapahtuu, kun arkki on valittu jne. Kaikissa näissä tapauksissa käytämme laskentataulukon tapahtumakäsittelijää. Tapahtumakäsittelijä auttaa meitä suorittamaan VBA -koodin aina, kun tietty tapahtuma tapahtuu.

Tässä artikkelissa opimme lyhyesti jokaisesta laskentataulukon tapahtumakäsittelijästä.

Mikä on laskentataulukoiden tapahtumienkäsittelijä?

Laskentataulukon tapahtumakäsittelijä on aliohjelma, joka on paikallinen laskentataulukkomoduulille.

Mihin kirjoittaa laskentataulukon tapahtumakäsittelijän koodi?

Laskentataulukko Tapahtumat kirjoitetaan vain arkki -objekteihin. Jos kirjoitat laskentataulukkotapahtuman johonkin moduuliin tai luokkamoduuliin, virheitä ei tule, mutta ne eivät vain toimi.

Arkki -objektiin kirjoittaminen. Kaksoisnapsauta sitä tai napsauta hiiren kakkospainikkeella ja napsauta Näytä koodi. Koodin kirjoitusalue tulee näkyviin.

Kuinka kirjoittaa tietyn tapahtuman koodi laskentataulukkoon?

Nyt kun olet muokkaustilassa, näet vasemman yläkulman pudotusvalikosta yleistä. Napsauta avattavaa valikkoa ja valitse laskentataulukko. Nyt kaikki tapahtumat näkyvät oikean yläkulman pudotusvalikossa. Valitse kumpi tarvitset ja lupauskoodi tälle tapahtumalle kirjoitetaan sinulle.

Jokaisella tapahtumalla on kiinteä menettelyn nimi. Nämä ovat varattuja aliohjelmanimiä. Et voi käyttää niitä muihin taulukon aliohjelmiin. Moduulissa ne toimivat normaalina aliohjelmana.

Tärkeä: Jokainen luettelon aliohjelma suoritetaan määritetyssä tapahtumassa.
Yksi työkirjan tapahtumatyyppityyppi voidaan kirjoittaa vain yhdelle arkille. Jos kirjoitat kaksi samaa tapahtumakäsittelymenettelyä yhdelle arkille, tuloksena on virhe, eikä mitään suoriteta. Virhe on tietysti epäselviä aliohjelmia.

Opetellaan lyhyesti jokaisesta tapahtumasta.

1. TheTyösivun_muutos (ByVal -tavoite alueena)Tapahtuma

Tämä tapahtuma käynnistyy, kun teemme muutoksia laskentataulukoiden sisällyttämiseen (muotoilu pois lukien). Jos haluat tehdä jotain, jos muutoksia tehdään koko taulukkoon, koodi on:

Yksityinen alityökirjan_muutos (ByVal -kohde alueena) 'tee jotain Msgbox "teki jotain" Lopeta ala 

"Kohde" on aina aktiivinen solu.

Toinen esimerkki: Haluat ehkä lisätä päivämäärän ja kellonajan soluun B1, jos A1 muuttuu. Tässä tapauksessa käytämme worksheet_change -tapahtumaa. Koodi näyttäisi tältä:

Yksityinen alityöarkin_muutos (ByVal -tavoite alueena) Jos Kohde.Osoite = "$ A $ 1" Silloin alue ("B1"). Arvo2 = Muoto (Nyt (), "hh: mm: ss") End If End Sub 

Tämä kohdistaa vain soluun A1.

Jos haluat kohdistaa alueen, käytä alla olevaa esimerkkiä:

Suorita makro, jos taulukkoon tehdään muutoksia määritetyllä alueella

2. TheWorksheet_SelectionChange (ByVal Target as Range)Tapahtuma

Kuten nimestä voi päätellä, tämä tapahtuma käynnistyy, kun valinta muuttuu. Toisin sanoen, jos kohdistin on solussa A1 ja se siirtyy johonkin toiseen soluun, tämän aliohjelman koodi suoritetaan.

Alla oleva koodi muuttaa aktiivisten solujen väriä, jos se muuttuu ja jos se on parillinen rivi.

Yksityinen alityöarkki_SelectionChange (ByVal Target as Range) if Target.Row Mod 2 = 0 then Target.Interior.ColorIndex = 22 End If End Sub 

Nyt kun kohdistin siirtyy tasaiselle riville, se on värillinen. Parittomat rivisolut säästetään.

Toinen esimerkki Worksheet_SelectionChange -tapahtumasta:

Yksinkertaisin VBA -koodi nykyisen rivin ja sarakkeen korostamiseen

3. The Työkirja_Activate () Tapahtuma

Tämä tapahtuma käynnistyy, kun taulukon sisältävä tapahtumakoodi aktivoituu. Tämän tapahtuman luuranko on:

Yksityinen alityöarkki_Activate () Lopeta ala 

Yksinkertainen esimerkki on taulukon nimen näyttäminen, kun se valitaan.

Yksityinen alityöarkki_Activate () MsgBox "Olet" ja ActiveSheet.Name Lopeta ala 

Heti kun tulet taulukkoon, joka sisältää tämän koodin, tapahtuma suoritetaan ja näytetään viesti "Olet arkin nimi" (arkki 2 on minun tapauksessani).

4. The Työkirja_Deactivate () Tapahtuma

Tämä tapahtuma käynnistyy, kun poistut koodia sisältävästä taulukosta. Toisin sanoen, jos haluat tehdä jotain, kuten piilottaa rivejä tai jotain, kun poistut taulukosta, käytä tätä VBA -tapahtumaa. Syntaksi on:

Private Sub Worksheet_Deactivate () 'your code' End Sub 

Alla oleva esimerkki Worksheet_Deativate -tapahtuma näyttää vain viestin, jonka olet jättänyt pääarkista, kun poistut tästä taulukosta.

Yksityinen alityöarkki_Deactivate () MsgBox "Lähdit pääarkista" Loppuosa 

5. The Työkirja_EnnenPoista ()Tapahtuma

Tämä tapahtuma käynnistyy, kun vahvistat VBA -tapahtuman sisältävän taulukon poistamisen. Syntaksi on yksinkertainen:

Yksityinen alityöarkki_BeforeDelete () Lopeta ala 

Alla oleva koodi kysyy, haluatko kopioida poistettavan arkin sisällön.

Yksityinen alityöarkki_BeforeDelete () ans = MsgBox ("Haluatko kopioida tämän taulukon sisällön uudelle arkille?", VbYesNo) If ans = True then "koodi kopioida End If End Sub 

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

Tämä tapahtuma käynnistyy, kun kaksoisnapsautat kohdistettua solua. Tämän VBA -laskentataulukkotapahtuman syntaksi on:

Yksityinen alityöarkki_BeforeDoubleClick (ByVal Target as Range, Cancel as Boolean) End Sub 

Jos et aseta kohdesolua tai -aluetta, se käynnistyy joka kerta kaksoisnapsauttamalla taulukkoa.
Peruuta -muuttuja on looginen muuttuja. Jos asetat arvon Tosi, oletustoimintoa ei tehdä. Se tarkoittaa, että jos kaksoisnapsautat solua, se ei pääse muokkaustilaan.
Alla oleva koodi saa solun täyttymään värillä, jos kaksoisnapsautat mitä tahansa solua.

Yksityinen alityöarkki_BeforeDoubleClick (ByVal Target as Range, Cancel as Boolean) Cancel = True Target.Interior.ColorIndex = 7 End Sub 

Alla oleva koodi kohdistuu soluun A1. Jos se on jo täytetty määritetyllä värillä, se katoaa. Se on paljon kuin tykkäyspainike tai valintaruutu.

Yksityinen ali Worksheet_BeforeDoubleClick(ByVal Target as Range, Cancel as Boolean) If Target.Address = "$ A $ 1" Sitten Peruuta = True If Target.Interior.ColorIndex = 4 Sitten Target.Interior.ColorIndex = xlColorIndexNone Else Target.Interior.ColorIndex = 4 End If Lopeta Jos Lopeta Sub 

7. The Worksheet_BeforeRightClick (ByVal Target as Range, Cancel as Boolean) Tapahtuma

Tämä tapahtuma käynnistyy, kun napsautat hiiren kakkospainikkeella kohdistettua solua. Tämän VBA -työkirjatapahtuman syntaksi on:

Yksityinen ali Worksheet_BeforeRightClick(ByVal Target As Range, Cancel as Boolean) Cancel = True '' your code 'End Sub 

Alla oleva koodi täyttää solun arvolla 1, jos napsautat sitä hiiren kakkospainikkeella. Se ei näytä hiiren kakkospainikkeiden oletusasetuksia, koska olemme asettaneet Peruuta-operaattorin arvoksi True.

Yksityinen alityöarkki_BeforeRightClick (ByVal Target as Range, Cancel as Boolean) Cancel = True Target.Value = 1 End Sub 

8. The Laskentataulukko_laskenta () Tapahtuma

Jos haluat jotain tapahtuvan, kun Excel laskee taulukon, käytä tätä tapahtumaa. Se käynnistyy aina, kun Excel laskee taulukon. Syntaksi on yksinkertainen:

Private Sub Worksheet_Calculate () '' koodisi 'End Sub 

6. The Worksheet_FollowHyperlink (ByVal -kohde hyperlinkkinä)Tapahtuma

Tämä toimenpide suoritetaan, kun napsautat taulukon hyperlinkkiä. Tämän tapahtumakäsittelijän perussyntaksi on:

Yksityinen alityöarkki_FollowHyperlink (ByVal -kohde hyperlinkkinä) '' koodisi 'End Sub 

Voit halutessasi asettaa kohteen hyperlinkin. Jos et aseta kohdehyperlinkkiä, se suoritetaan, jos napsautat mitä tahansa hyperlinkkiä koodia sisältävässä taulukossa.

Joten kyllä ​​kaverit, nämä olivat joitain perustyötaulukon tapahtumia, jotka ovat käteviä, jos tiedät niistä. Alla on joitain aiheeseen liittyviä artikkeleita, joita haluat ehkä lukea.

Jos sinulla on epäilyksiä tästä artikkelista tai muista Excel/VBA -aiheisiin liittyvistä artikkeleista, kerro siitä meille alla olevassa kommenttiosiossa.

Laskentataulukon muutostapahtuman käyttäminen makron suorittamiseen, kun muutos on tehty| Joten makron suorittamiseen aina, kun taulukko päivittyy, käytämme VBA: n laskentataulukkotapahtumia.

Suorita makro, jos taulukkoon tehdään muutoksia määritetyllä alueella| Käytä tätä VBA -koodia makrokoodin suorittamiseen määritetyn alueen arvon muuttuessa. Se havaitsee määritetylle alueelle tehdyt muutokset ja laukaisee tapahtuman.

Yksinkertaisin VBA -koodi korostaaksesi nykyisen rivin ja sarakkeen | Käytä tätä pientä VBA -katkelmaa korostamaan taulukon nykyinen rivi ja sarake.

Suosittuja artikkeleita:

50 Excel -pikanäppäintä tuottavuuden lisäämiseksi | Nopeuta tehtävääsi. Nämä 50 pikanäppäintä nopeuttavat työtäsi Excelissä.

VLOOKUP -toiminto Excelissä | Tämä on yksi eniten käytetyistä ja suosituimmista Excel -toiminnoista, jota käytetään arvon etsimiseen eri alueilta ja arkeilta.

COUNTIF Excel 2016: ssa | Laske arvot olosuhteilla käyttämällä tätä hämmästyttävää toimintoa. Sinun ei tarvitse suodattaa tietojasi tietyn arvon laskemiseksi. Laskutoiminto on välttämätön kojelaudan valmistelemiseksi.

SUMIF -toiminnon käyttäminen Excelissä | Tämä on toinen kojelaudan olennainen toiminto. Tämä auttaa sinua laskemaan yhteen arvot tietyissä olosuhteissa.