Počas vašich postupov VBA by ste potrebovali spustiť makrá, keď sa zmení určitý rozsah alebo bunka. V takom prípade na spustenie makier pri zmene cieľového rozsahu použijeme udalosť zmeny. Udalosti vo VBA nám umožňujú spustiť makrá, keď dôjde k určitej udalosti.
Syntax Udalosť zmeny rozsahu VBA
Súkromný čiastkový pracovný hárok_Zmeniť (ByVal cieľ ako rozsah) Ak nie je priesečník (cieľ, rozsah („váš_rozsah“)) nie je nič, potom zavolajte your_macro End If End Sub
Udalosť nefunguje v moduloch. Musíte ich napísať do objektov (pracovný list, grafy, zošit).
Lat's have a example to learn how to run a macro when a change is made in a specified range.
Príklad: Spustite makro VBA, keď sa vykoná zmena v rozsahu A2: A100
Najprv si vyberieme list, na ktorom sa udalosť vyskytne. Dvakrát kliknite na tento hárok v editore VBA a skopírujte nižšie uvedený kód alebo generický kód a vykonajte zmeny podľa svojich požiadaviek.
V tomto prípade chcem spustiť kód makra/VBA, keď sa vykoná zmena v rozsahu A2: A100 na hárku 2. Na to dvakrát kliknem na list2 v programe Explorer. Otvára stránku s kódovaním pre tento hárok. To isté urobíte kliknutím pravým tlačidlom myši na hárok a kliknutím na kód zobrazenia.
Musím použiť udalosť zmeny. Na to používame predvolený podprogram Worksheet_Change (ByVal Target As Range). Spustí sa, keď je vykonaná špecifikovaná zmena. Náš kód je teda tento:
Súkromný čiastkový pracovný hárok_Zmeniť (ByVal cieľ ako rozsah) Ak nie je priesečník (cieľ, rozsah ("A2: A100")) nie je nič, potom zavolajte TestEvent End If End Sub
Keď vykonáte akékoľvek zmeny v rozsahu A2: A100 na hárku 2, zavolá sa podprogram TestEvent, ako vidíte na obrázku vyššie.
TestEvent je verejný podprogram v module2. Jednoducho sa zobrazí správa, že udalosť funguje.
Sub TestEvent () MsgBox „Udalosť funguje!“ Koniec pod
Ako to funguje?
Dali sme podmienku:
Ak sa nepretína (cieľ, rozsah („A2: A100“)), potom nie je nič
Tu sa priesečník (cieľ, rozsah („A2: A100“)) vráti na hodnotu True, ak v rozsahu A2: A100 nedôjde k žiadnej zmene. Pred tento príkaz dáme operátor Not, ktorý obráti výstup daný „Intersect (Target, Range (" A2: A100 "))". Ak teda nie je vykonaná žiadna zmena v rozsahu A2: A100, výraz vráti hodnotu Falls a sub testEvent nedostane hovor. Ak vykonáte zmenu v akejkoľvek bunke v rozsahu A2: A100, výraz vráti hodnotu True a udalosť nastane. A to sa tu deje.
Poznámka: Do tohto bloku môžete vložiť akýkoľvek podprogram. Môže to byť z akéhokoľvek modulu. Ale malo by ísť o verejný podprogram. Rozsah môžete nastaviť v ľubovoľnom rozsahu. Limitom je celý list.
Takže áno, chlapci, takto môžete zavolať podprogram alebo spustiť kód makra/VBA, keď dôjde k zmene v určenom rozsahu. Bol to základný príklad udalosti. Táto udalosť sa spustí iba vtedy, ak je zmena založená na texte. Pod textom mám na mysli, ak niečo napíšete do buniek alebo odstránite, udalosť sa spustí. Ak zmeníte formátovanie buniek, nespustí sa. Na to existujú aj iné metódy.
Dúfam, že to bolo užitočné. Ak máte akékoľvek otázky týkajúce sa tejto témy VBA alebo akejkoľvek inej témy súvisiacej s programom Excel, dajte mi vedieť nižšie uvedenú sekciu komentárov. A pozrite sa na naše ďalšie súvisiace a obľúbené príspevky uvedené nižšie.
Spustite makro, keď sa na hárku vykonajú akékoľvek zmeny| Na spustenie makra vždy, keď sa aktualizuje hárok, preto používame udalosti pracovného hárka VBA.
Najjednoduchší kód VBA na zvýraznenie aktuálneho použitia riadkov a stĺpcov| Pomocou tohto malého útržku VBA zvýraznite aktuálny riadok a stĺpec listu.
Udalosti pracovného hárka v programe Excel VBA| Udalosť pracovného hárka je skutočne užitočná, keď chcete, aby sa vaše makrá spustili, keď sa v hárku vyskytne zadaná udalosť.
Populárne články:
50 skratiek programu Excel na zvýšenie produktivity | Vykonajte svoju úlohu rýchlejšie. Týchto 50 skratiek vám umožní pracovať ešte rýchlejšie v Exceli.
Funkcia VLOOKUP v programe Excel | Toto je jedna z najpoužívanejších a najobľúbenejších funkcií programu Excel, ktorá sa používa na vyhľadávanie hodnôt z rôznych rozsahov a hárkov.
COUNTIF v Exceli 2016 | Počítajte hodnoty s podmienkami pomocou tejto úžasnej funkcie. Na počítanie konkrétnej hodnoty nepotrebujete filtrovať svoje údaje. Funkcia Countif je potrebná na prípravu palubnej dosky.
Ako používať funkciu SUMIF v programe Excel | Toto je ďalšia zásadná funkcia palubnej dosky. To vám pomôže zhrnúť hodnoty za konkrétnych podmienok.