Käivitage makro, kui lehel tehakse kindlaksmääratud vahemikus muudatusi

Lang L: none (table-of-contents):

Anonim

Kogu oma VBA praktika käigus tekib vajadus teatud vahemiku või lahtri muutumisel makrosid käivitada. Sel juhul kasutame makrosid käivitamiseks, kui sihtvahemikku muudetakse, muutmise sündmust. Sündmused VBA -s võimaldavad meil teatud sündmuste ilmnemisel makrosid käivitada.

Süntaksi VBA vahemiku muutmise sündmus

Privaatse alamlehe_muutmine (ByVal -sihtmärk vahemikuna), kui see ei lõiku (sihtmärk, vahemik ("teie_vahemik")) pole midagi, siis helistage

Sündmus ei tööta moodulites. Peate need objektidesse kirjutama (tööleht, diagrammid, töövihik).

Latidel on näide makro käitamise õppimiseks, kui määratud vahemikus tehakse muudatusi.

Näide: käivitage VBA makro, kui vahemikus A2: A100 on tehtud muudatus

Esiteks valime lehe, millel sündmus toimub. Topeltklõpsake sellel lehel VBA redaktoris ja kopeerige ülaltoodud kood või ülaltoodud üldkood ja tehke muudatusi vastavalt oma vajadustele.

Selles näites tahan käivitada makro/VBA koodi, kui lehel 2 tehakse muudatusi vahemikus A2: A100. Selleks topeltklõpsan projekti Exploreris lehel2. See avab selle lehe kodeerimislehe. Sama toimingu tegemiseks võite lehel paremklõpsata ja klõpsata vaate koodil.

Pean kasutama muutmise sündmust. Selleks kasutame vaikimisi alamprogrammi Worksheet_Change (ByVal Target As Range). See käivitub määratud muudatuse tegemisel. Nii et meie kood on järgmine:

Privaatne alamlehe_muutmine (ByVal -sihtmärk vahemikuna), kui see ei lõiku (sihtmärk, vahemik ("A2: A100")) pole midagi, seejärel helistage testiüritusele Lõpp kui lõpp 

Kui muudate lehel2 vahemikus A2: A100 muudatusi, kutsutakse alamprogramm TestEvent, nagu näete ülaltoodud gifist.

TestEvent on mooduli 2 avalik alamprogramm. See kuvab lihtsalt teate, et sündmus töötab.

Sub TestEvent () MsgBox "Sündmus töötab!" End Sub 

Kuidas see töötab?

Oleme seadnud tingimuse:

Kui mitte ristuda (sihtmärk, vahemik ("A2: A100")) pole siis midagi

Siin lõikub lõik (sihtmärk, vahemik ("A2: A100")) Is Nothing tagastab tõese, kui vahemikus A2: A100 muudatusi ei tehta. Selle avalduse ette paneme operaatori Not, mis pöörab väljundi, mille on andnud "Ristmik (sihtmärk, vahemik (" A2: A100 "))". Seega, kui vahemikus A2: A100 muudatusi ei tehta, tagastab avaldis Falls ja alam TestEvent ei saa kõnet. Kui muudate vahemiku A2: A100 mis tahes lahtrit, tagastab avaldis tõene ja sündmus toimub. Ja seda siin juhtub.

Märge: Sellesse plokki saate panna mis tahes alamprogrammi. See võib olla mis tahes moodulist. Kuid see peaks olema avalik alamprogramm. Vahemikku saate määrata mis tahes ulatuses. Kogu leht on piir.

Nii et jah, poisid, nii saate helistada alamprogrammile või käivitada makro/VBA koodi, kui määratud vahemikus muudatusi tehakse. See oli sündmuste põhinäide. See sündmus käivitub ainult siis, kui muudatus on tekstipõhine. Tekstipõhise all mõtlen ma seda, et kui kirjutate lahtritesse midagi või kustutate, käivitatakse sündmus. Kui muudate lahtrite vormingut, siis see ei käivitu. Selleks on ka teisi meetodeid.

Loodan, et sellest oli abi. Kui teil on selle VBA teema või mõne muu Exceli teemaga seotud küsimusi, andke mulle teada allpool olevast kommentaaride jaotisest. Ja vaadake meie teisi seotud ja populaarseid postitusi, mida allpool mainitakse.

Käivitage makro, kui lehel tehakse muudatusi| Nii et makro käivitamiseks iga kord, kui lehte värskendatakse, kasutame VBA töölehe sündmusi.

Lihtsaim VBA kood praeguse rea ja veeru esiletõstmiseks| Kasutage seda väikest VBA -katkendit lehe praeguse rea ja veeru esiletõstmiseks.

Töölehe sündmused Excel VBA -s| Töölehe sündmus on tõesti kasulik, kui soovite oma makrosid käivitada, kui lehel toimub määratud sündmus.

Populaarsed artiklid:

50 Exceli otseteed tootlikkuse suurendamiseks | Saa oma ülesandega kiiremini hakkama. Need 50 otseteed aitavad teil Excelis veelgi kiiremini töötada.

Funktsioon VLOOKUP Excelis | See on üks enim kasutatud ja populaarsemaid Exceli funktsioone, mida kasutatakse erinevate vahemike ja lehtede väärtuse otsimiseks.

COUNTIF Excelis 2016 | Loendage väärtused tingimustega, kasutades seda hämmastavat funktsiooni. Te ei pea konkreetse väärtuse loendamiseks oma andmeid filtreerima. Countif funktsioon on armatuurlaua ettevalmistamisel hädavajalik.

Funktsiooni SUMIF kasutamine Excelis | See on veel üks armatuurlaua oluline funktsioon. See aitab teil teatud tingimustel väärtusi kokku võtta.