Během vašich postupů VBA byste dostali potřebu spouštět makra, když se změní určitý rozsah nebo buňka. V takovém případě ke spuštění maker při změně cílového rozsahu použijeme událost change. Události ve VBA nám umožňují spouštět makra, když dojde k určité události.
Syntaxe Událost změny rozsahu VBA
Private Sub Worksheet_Change (ByVal Target As Range) Pokud se neprotíná (Target, Range ("your_range")) není nic, pak zavolejte your_macro End If End Sub
Událost nefunguje v modulech. Musíte je zapsat do objektů (pracovní list, grafy, sešit).
Lat's have a example to learn how to run a macro when a change is made in a specified range.
Příklad: Spustit makro VBA, když je provedena změna v rozsahu A2: A100
Nejprve vybereme list, na kterém událost nastane. Poklepejte na tento list v editoru VBA a zkopírujte níže uvedený kód nebo obecný kód a proveďte změny podle svého požadavku.
V tomto příkladu chci spustit kód makra/VBA, když je provedena změna v rozsahu A2: A100 na listu 2. K tomu dvakrát kliknu na sheet2 v Průzkumníku projektů. Otevře kódovací stránku pro tento list. To samé provedete kliknutím pravým tlačítkem na list a kliknutím na kód zobrazení.
Musím použít událost změny. K tomu používáme výchozí podprogram Worksheet_Change (ByVal Target As Range). Spustí se při provedení zadané změny. Náš kód je tedy tento:
Private Sub Worksheet_Change (ByVal Target As Range) Pokud se neprotíná (Target, Range ("A2: A100")) Is nothing Then call TestEvent End If End Sub
Když provedete jakékoli změny v rozsahu A2: A100 na listu 2, bude vyvolán podprogram TestEvent, jak můžete vidět na obrázku výše.
TestEvent je veřejný podprogram v modulu2. Jednoduše se zobrazí zpráva, že událost funguje.
Sub TestEvent () MsgBox "Událost funguje!" End Sub
Jak to funguje?
Dali jsme podmínku:
Pokud není protínat (cíl, rozsah („A2: A100“)), pak není nic
Zde se protíná (cíl, rozsah ("A2: A100")) je Nic vrací True, pokud není provedena žádná změna v rozsahu A2: A100. Před tento příkaz vložíme operátor Not, který obrátí výstup daný "Intersect (Target, Range (" A2: A100 "))". Pokud tedy v rozsahu A2: A100 neprovedete žádnou změnu, výraz vrátí Falls a sub TestEvent volání nezíská. Pokud provedete změnu v jakékoli buňce v rozsahu A2: A100, výraz vrátí hodnotu True a událost nastane. A to se tady děje.
Poznámka: Do tohoto bloku můžete vložit jakýkoli podprogram. Může to být z jakéhokoli modulu. Ale mělo by jít o veřejný podprogram. Rozsah můžete nastavit v jakékoli míře. Limitem je celý list.
Takže jo, lidi, takhle můžete zavolat podprogram nebo spustit kód makra/VBA, když dojde ke změně v zadaném rozsahu. Byl to základní příklad události. Tato událost se spustí pouze v případě, že je změna založena na textu. Na základě textu mám na mysli, pokud něco napíšete do buněk nebo odstraníte, událost se spustí. Pokud změníte formátování buněk, nespustí se. K tomu existují jiné metody.
Doufám, že to bylo užitečné. Pokud máte nějaké dotazy týkající se tohoto tématu VBA nebo jiného tématu souvisejícího s Excelem, dejte mi vědět níže uvedenou sekci s komentáři. A podívejte se na naše další související a oblíbené příspěvky uvedené níže.
Spustit makro po provedení jakékoli změny na listu| Chcete -li tedy spustit makro vždy, když se list aktualizuje, používáme události pracovního listu VBA.
Nejjednodušší kód VBA pro zvýraznění aktuálního řádku a sloupce pomocí| Pomocí tohoto malého úryvku VBA zvýrazněte aktuální řádek a sloupec listu.
Události listu v aplikaci Excel VBA| Událost listu je opravdu užitečná, když chcete, aby se vaše makra spustila, když na listu dojde k zadané události.
Oblíbené články:
50 zkratek aplikace Excel pro zvýšení produktivity | Získejte rychleji svůj úkol. Těchto 50 klávesových zkratek vám umožní pracovat v Excelu ještě rychleji.
Funkce VLOOKUP v Excelu | Toto je jedna z nejpoužívanějších a nejoblíbenějších funkcí Excelu, která slouží k vyhledávání hodnot z různých rozsahů a listů.
COUNTIF v aplikaci Excel 2016 | Pomocí této úžasné funkce spočítejte hodnoty s podmínkami. K počítání konkrétní hodnoty nepotřebujete filtrovat data. Funkce Countif je nezbytná pro přípravu řídicího panelu.
Jak používat funkci SUMIF v aplikaci Excel | Toto je další základní funkce řídicího panelu. To vám pomůže shrnout hodnoty za konkrétních podmínek.