Možno budete chcieť spustiť svoj úryvok z makra/VBA, keď bunka zmení svoju hodnotu, keď dôjde k dvojitému kliknutiu, keď je vybratý hárok atď. Vo všetkých týchto prípadoch používame obslužný program udalostí pracovného hárka. Obsluha udalostí nám pomáha spustiť kód VBA vždy, keď dôjde k určitej udalosti.
V tomto článku sa stručne dozvieme o každom obslužnom programe udalostí pracovného hárka.
Čo je to obsluha udalostí pracovných hárkov?
Obsluha udalostí pracovného hárka je podprogram, ktorý je lokálny pre modul pracovného hárka.
Kde napísať kód obsluhy udalostí pracovného hárka?
Pracovný list Udalosti sú zapísané iba do objektov hárkov. Ak napíšete udalosť pracovného hárka v niektorom module alebo module triedy, nevyskytne sa žiadna chyba, ale nebudú fungovať.
Zapisovať do objektu listu. Dvakrát naň kliknite alebo kliknite pravým tlačidlom myši a kliknite na položku Zobraziť kód. Zobrazí sa oblasť písania kódu.
Ako napísať kód pre konkrétnu udalosť do pracovného hárka?
Keď ste teraz v režime úprav, v rozbaľovacej ponuke v ľavom hornom rohu uvidíte všeobecné. Kliknite na rozbaľovaciu ponuku a vyberte pracovný hárok. Teraz v rozbaľovacej ponuke v pravom hornom rohu sa zobrazia všetky udalosti. Vyberte si, čo potrebujete, a kostrový kód pre túto udalosť bude napísaný za vás.
Každá udalosť má pevný názov procedúry. Toto sú vyhradené názvy podprogramov. Nemôžete ich použiť na iné podprogramy na hárku. V module budú fungovať ako normálny podprogram.
Dôležité: Každý podprogram z tohto zoznamu pobeží na zadanej udalosti.
Jeden typ postupu pre udalosť pracovného hárka je možné napísať iba raz na jeden list. Ak na jeden list napíšete dve rovnaké procedúry spracovania udalostí, bude to mať za následok chybu a žiadny z nich nebude vykonaný. Samozrejme, chybou budú nejednoznačné podprogramy.
Stručne sa zoznámime s každou z udalostí.
1. TheWorksheet_Change (ByVal Target As Range)Udalosť
Táto udalosť sa spustí, keď vykonáme akúkoľvek zmenu v obsahu pracovných hárkov (formátovanie je vylúčené). Ak chcete niečo urobiť, ak dôjde k zmene v celom hárku, potom bude kód nasledujúci:
Súkromný pracovný hárok_Zmeniť (ByVal cieľ ako rozsah) „urobte niečo, čo sa v priečinku Msgbox„ niečo urobilo “Koniec
„Cieľ“ je vždy aktívna bunka.
Ďalší príklad: Ak sa zmení A1, možno by ste chceli vložiť dátum a čas do bunky B1. V takom prípade použijeme udalosť worksheet_change. Kód by vyzeral takto:
Súkromný čiastkový pracovný list_Zmeniť (ByVal cieľ ako rozsah) Ak Cieľ.Address = "$ A $ 1" Then Range ("B1"). Value2 = Format (Now (), "hh: mm: ss") End If End Sub
Bude zacielený iba na bunku A1.
Ak chcete zacieliť na rozsah, použite nasledujúci príklad:
V prípade zmeny vykonanej na hárku v určenom rozsahu spustite makro
2. TheWorksheet_SelectionChange (ByVal Target As Range)Udalosť
Ako naznačuje názov, táto udalosť sa spustí pri zmene výberu. Inými slovami, ak je váš kurzor v bunke A1 a presunie sa do inej bunky, spustí sa kód v tomto podprograme.
Nasledujúci kód zmení farbu aktívnych buniek, ak sa zmení alebo je to párny riadok.
Súbor Sub Subheet_SelectionChange (ByVal Target As Range) If Target.Row Mod 2 = 0 Then Target.Interior.ColorIndex = 22 End If End Sub
Teraz, kedykoľvek sa môj kurzor posunie na párny riadok, bude zafarbený. Bunky podivných riadkov budú ušetrené.
Ďalší príklad udalosti Worksheet_SelectionChange:
Najjednoduchší kód VBA na zvýraznenie aktuálneho použitia riadkov a stĺpcov
3. The Worksheet_Activate () Udalosť
Táto udalosť sa spustí, keď sa aktivuje kód udalosti obsahujúci hárok. Kostrový kód tejto udalosti je:
Súkromný čiastkový pracovný list_Activate () Koniec pod
Jednoduchým príkladom je zobrazenie názvu hárka, keď je vybraný.
Súkromný čiastkový pracovný hárok_Aktivovať () MsgBox „Ste na“ & ActiveSheet.Name Koniec Sub
Hneď ako prídete na list, ktorý obsahuje tento kód, udalosť sa spustí a zobrazí sa správa, že „Ste na názve hárka“ (hárok2 je v mojom prípade).
4. The Pracovný list_Deaktivovať () Udalosť
Táto udalosť sa spustí pri opustení listu obsahujúceho hárok. Inými slovami, ak chcete niečo urobiť, napríklad skryť riadky alebo čokoľvek, keď opustíte list, použite túto udalosť VBA. Syntax je:
Private Sub Worksheet_Deactivate () 'your code' End Sub
Nasledujúci príklad udalosti Worksheet_Deativate jednoducho zobrazí správu, že ste opustili hlavný hárok, keď tento hárok opustíte.
Súkromný čiastkový pracovný hárok_Deaktivovať () MsgBox „Opustili ste hlavný hárok“ End Sub
5. The Worksheet_BeforeDelete ()Udalosť
Táto udalosť sa spustí, keď potvrdíte odstránenie udalosti obsahujúcej hárok VBA. Syntax je jednoduchá:
Súkromný čiastkový pracovný list_BeforeDelete () Koniec pod
Nasledujúci kód sa vás opýta, či chcete skopírovať obsah hárku, ktorý sa má odstrániť.
Private Sub Worksheet_BeforeDelete () ans = MsgBox („Chcete skopírovať obsah tohto hárka do nového hárka?“, VbYesNo) If ans = True Potom 'kód na kopírovanie End If End Sub
6. The Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel as Boolean) Udalosť
Táto udalosť sa spustí, keď dvakrát kliknete na zacielenú bunku. Syntax tejto udalosti pracovného hárka VBA je:
Súhrnný pracovný hárok_BeforeDoubleClick (ByVal Target As Range, Cancel as Boolean) End Sub
Ak nenastavíte cieľovú bunku alebo rozsah, spustí sa pri každom dvojitom kliknutí na hárok.
Premenná Cancel je booleovská premenná. Ak ho nastavíte na hodnotu True, predvolená akcia sa nestane. To znamená, že ak na bunku dvakrát kliknete, nedostane sa do režimu úprav.
Nasledujúcim kódom sa bunka vyplní farbou, ak dvakrát kliknete na ľubovoľnú bunku.
Súbor Sub Subheet_BeforeDoubleClick (cieľ podľa ByVal ako rozsah, zrušenie ako boolean) Cancel = True Target.Interior.ColorIndex = 7 End Sub
Nasledujúci kód je zacielený na bunku A1. Ak je už naplnená špecifikovanou farbou, potom zmizne. Je to podobne ako tlačidlo alebo začiarkavacie políčko.
Súkromný sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel as Boolean) If Target.Address = "$ A $ 1" Then Cancel = True If Target.Interior.ColorIndex = 4 Then Target.Interior.ColorIndex = xlColorIndexNone Else Target.Interior.ColorIndex = 4 End If If End If End Sub
7. The Worksheet_BeforeRightClick (ByVal Target As Range, Cancel as Boolean) Udalosť
Táto udalosť sa spustí, keď kliknete pravým tlačidlom myši na zacielenú bunku. Syntax tejto udalosti pracovného hárka VBA je:
Súkromný sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel as Boolean) Cancel = True '' your code 'End Sub
Nasledujúci kód vyplní bunku hodnotou 1, ak na ňu kliknete pravým tlačidlom myši. Predvolené možnosti kliknutí pravým tlačidlom myši sa nezobrazia, pretože sme operátor „Zrušiť“ nastavili na hodnotu True.
Súkromný čiastkový pracovný list_BeforeRightClick (cieľ podľa ByVal ako rozsah, zrušenie ako booleovský) Cancel = True Target.Value = 1 End Sub
8. The Pracovný list_Výpočet () Udalosť
Ak chcete, aby sa niečo stalo, keď Excel počíta hárok, použite túto udalosť. Spustí sa vždy, keď Excel vypočíta list. Syntax je jednoduchá:
Private Sub Worksheet_Calculate () '' váš kód 'End Sub
6. The Worksheet_FollowHyperlink (ByVal Target As Hyperlink)Udalosť
Tento postup sa spustí, keď kliknete na hypertextový odkaz v hárku. Základná syntax tejto obsluhy udalostí je:
Súbor Sub Subheet_FollowHyperlink (ByVal Target As Hyperlink) '' váš kód 'End Sub
Ak chcete, môžete nastaviť cieľový hypertextový odkaz. Ak nenastavíte cieľový hypertextový odkaz, spustí sa po kliknutí na ľubovoľný hypertextový odkaz na hárku obsahujúcom kód.
Takže áno, chlapci, toto boli niektoré zo základných udalostí pracovného hárka, ktoré budú užitočné, ak o nich viete. Nasleduje niekoľko súvisiacich článkov, ktoré by ste si mohli prečítať.
Ak máte akékoľvek pochybnosti týkajúce sa tohto článku alebo iného článku súvisiaceho s programom Excel/VBA, dajte nám vedieť v sekcii komentárov nižšie.
Použitie udalosti zmeny pracovného hárka na spustenie makra po vykonaní akejkoľvek zmeny| Na spustenie makra vždy, keď sa aktualizuje hárok, preto používame udalosti pracovného hárka VBA.
V prípade zmeny vykonanej na hárku v určenom rozsahu spustite makro| Na spustenie kódu makra pri zmene hodnoty v určenom rozsahu použite tento kód VBA. Zistí všetky zmeny vykonané v uvedenom rozsahu a spustí udalosť.
Najjednoduchší kód VBA na zvýraznenie aktuálneho riadka a stĺpca pomocou | Pomocou tohto malého útržku VBA zvýraznite aktuálny riadok a stĺpec listu.
Populárne články:
50 skratiek programu Excel na zvýšenie produktivity | Vykonajte svoju úlohu rýchlejšie. Týchto 50 skratiek vám v Exceli prácu ešte zrýchli.
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 nie je potrebné filtrovať ú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.