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

Kazalo:

Anonim

V vseh praksah VBA boste morali zagnati makre, ko se spremeni določeno območje ali celica. V tem primeru za izvajanje makrov pri spremembi ciljnega območja uporabimo dogodek spremembe. Dogodki v VBA nam omogočajo izvajanje makrov, ko pride do določenega dogodka.

Sintaksa Dogajanje za spremembo obsega VBA

Zasebni pod -delovni list_Sprememba (cilj ByVal kot obseg), če se ne preseka (cilj, obseg ("vaš_obseg")) ni nič, nato pokličite svoj_makro Konec če konec pod

Dogodek ne deluje v modulih. Zapisati jih morate v predmete (delovni list, grafikone, delovni zvezek).

Latini imajo primer, da se naučijo, kako zagnati makro, ko se izvede sprememba v določenem obsegu.

Primer: Zaženite makro VBA, ko se izvede sprememba v območju A2: A100

Najprej izberemo list, na katerem se bo dogodek zgodil. Dvokliknite ta list v urejevalniku VBA in kopirajte spodaj kodo ali generično kodo zgoraj in naredite spremembe glede na vaše zahteve.

V tem primeru želim zagnati kodo makra/VBA, ko pride do spremembe v območju A2: A100 na listu 2. Če želite to narediti, dvakrat kliknem list2 v raziskovalcu projektov. Odpre stran za kodiranje tega lista. Z desno miškino tipko kliknite list in kliknite kodo pogleda, da naredite enako.

Uporabiti moram dogodek spremembe. Za to uporabljamo privzeto podprogram Worksheet_Change (ByVal Target As Range). Sproži se, ko je izvedena določena sprememba. Torej je naša koda naslednja:

Zasebni pod -delovni list_Change (cilj ByVal kot obseg), če se ne preseka (cilj, obseg ("A2: A100")) ni nič, potem pokličite TestEvent End If End Sub 

Ko na Sheet2 naredite kakršne koli spremembe v obsegu A2: A100, se bo poklical podprogram TestEvent, kot lahko vidite na zgornji sliki.

TestEvent je javna podprogram v modulu 2. Preprosto se prikaže sporočilo, da dogodek deluje.

Sub TestEvent () MsgBox "Dogodek deluje!" End Sub 

Kako deluje?

Postavili smo pogoj:

Če se ne križa (cilj, doseg ("A2: A100")), potem ni nič

Tukaj Intersect (Target, Range ("A2: A100")) Is Nothing vrne True, če se v območju A2: A100 ne spremeni. Pred to izjavo postavimo operator Not, ki obrne izhod, ki ga poda "Intersect (Target, Range (" A2: A100 "))" ". Če torej v območju A2: A100 ne pride do spremembe, izraz vrne Falls in pomožni testEvent ne sprejme klica. Če spremenite katero koli celico v območju A2: A100, bo izraz vrnil True in dogodek se bo zgodil. In to se tukaj dogaja.

Opomba: V ta blok lahko vnesete katero koli podprogram. Lahko je iz katerega koli modula. Vendar bi morala biti javna podprogram. Domet lahko poljubno nastavite. Meja je celoten list.

Torej, fantje, tako lahko pokličete podprogram ali zaženete kodo makra/VBA, ko se izvede sprememba v določenem obsegu. To je bil osnovni primer dogodka. Ta dogodek se bo sprožil šele, ko bo sprememba temeljila na besedilu. Z besedilom mislim, če se dogodek sproži, če kaj napišete v celice ali izbrišete. Če spremenite oblikovanje celic, se ne sproži. Za to obstajajo druge metode.

Upam, da je bilo v pomoč. Če imate kakršna koli vprašanja v zvezi s to temo VBA ali katero koli drugo temo, povezano z Excelom, mi sporočite spodnji razdelek s komentarji. Oglejte si naše druge povezane in priljubljene objave, navedene spodaj.

Zaženi makro, če na listu pride do kakršne koli spremembe| Zato za zagon makra vsakič, ko se list posodobi, uporabljamo dogodke delovnega lista VBA.

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

Dogodki na delovnem listu v Excelu VBA| Dogodek delovnega lista je resnično uporaben, ko želite, da se makri izvajajo, ko se na listu pojavi določen dogodek.

Priljubljeni članki:

50 bližnjic v Excelu za večjo produktivnost | Poskrbite, da bo vaša naloga hitrejša. S temi 50 bližnjicami boste še hitreje delali v Excelu.

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.