Kopumā notikumi nav nekas cits kā kaut kas notiek. Excelā ir tas pats. Bet dažreiz mēs vēlamies, lai kaut kas notiktu automātiski, kad notiek kāds notikums. Lai kaut ko darītu, kad programmā Excel notiek konkrēts notikums, mēs izmantojam Excel VBA notikumu.
Excel VBA notikumu apstrādātāji: veidi
Programmā Excel VBA galvenokārt ir 7 veidu notikumu apstrādātāji.
- Pieteikšanās notikumi
- Notikumi darbgrāmatā
- Darblapas notikumi
- Diagrammas notikumi
- Lietotāja veidlapas notikumi
- Taustiņu kombinācijas notikumi (īsinājumtaustiņu notikumi)
- Laika notikumi
Izpētīsim tos pa vienam.
Lietojumprogrammu notikumi programmā Excel
Lietojumprogrammas līmeņa notikumi tiek aktivizēti, kad lietojumprogramma (Excel) tiek aizvērta, atvērta, aktivizēta, aizsargāta, neaizsargāta utt.
Lietojumprogrammu līmenī ir vairāk nekā 50 notikumu veidi. Tāpēc mēs nevaram šeit visus apspriest.
Pieteikuma notikuma apjoms:
Šie notikumi darbosies visās Excel darbgrāmatās, ja vien ir atvērts kods, kas satur darbgrāmatu. Piemēram, ja esat izveidojis lietojumprogrammas līmeņa notikumu, lai pastāstītu jums aktīvās lapas lapas nosaukumu, tas tiks aktivizēts, aktivizējot katru darbgrāmatas lapu.
Kā izveidot lietojumprogrammu notikumu apstrādātāju VBA?
Lietojumprogrammas notikuma izveide ir nedaudz sarežģīta. Šeit es to detalizēti paskaidroju ar piemēru.
Darbgrāmatas notikumi programmā Excel
Darbgrāmatas notikuma apjoms
Darbgrāmatas notikumi darbojas visā darbgrāmatā, kurā ir kods. Pasākums var atvērt, aizvērt, aktivizēt, deaktivizēt, mainīt lapas utt.
Kur rakstīt darbgrāmatas notikumus?
Darbgrāmatas notikumi ir rakstīti uz darbgrāmatas objekta.
Kā uzrakstīt darbgrāmatas notikumu?
Izpildiet šīs darbības:
1. Projekta izpētē veiciet dubultklikšķi uz darbgrāmatas objekta. Tiks parādīts koda rakstīšanas apgabals. Visi notikumi ar darbgrāmatas darbības jomu ir rakstīti šeit.
2. Koda rakstīšanas apgabala augšējā kreisajā stūrī redzēsiet nolaižamo izvēlni. Noklikšķiniet uz nolaižamās izvēlnes un izvēlieties darbgrāmatu. Pēc noklusējuma tas ir vispārīgs.
3. Kad esat izvēlējies darbgrāmatu no kreisās nolaižamās izvēlnes, tā pēc noklusējuma ievietos darbgrāmatas atvēršanas apakšprogrammu. Bet, ja vēlaties izmantot citu notikumu apakšprogrammu, izvēlieties to nolaižamajā augšējā labajā stūrī. Tajā tiks uzskaitīti visi pieejamie darbgrāmatas notikumi.
4. Izvēlieties vajadzīgo notikumu. Piemēra labad es izvēlos notikumu SheetActivate. Šis notikums tiek aktivizēts katrā lapas atlasē koda saturošajā darbgrāmatā.
Darbgrāmatas notikuma piemērs:Šis ir vienkāršs piemērs. Es tikai vēlos parādīt aktivizētās darblapas nosaukumu. Šim nolūkam es vienkārši izmantoju SheetActivate notikumu darbgrāmatas objektā.
Privāta apakšnodaļa Workbook_SheetActivate (ByVal Sh kā objekts) MsgBox Sh.Name & "Activated" beigu apakš
Tagad, kad tiks aktivizēta jauna šīs darbgrāmatas lapa, šis notikums tiks aktivizēts. Jums tiks piedāvāts aktivizēt masāžu, lapas nosaukums.
Es zinu, ka šis kods nav tik noderīgs, taču starp šīm rindām varat ievietot jebkuru instrukciju kopu. Jūs varat izsaukt funkcijas un apakšprogrammas no paša moduļa.
Darblapas notikumi programmā Excel
Visi diapazona un šūnu mērķa notikumi ir ierakstīti darblapas notikumos. Par darblapas notikumiem varat lasīt šeit.
Darblapas notikuma apjoms
Darblapas notikumi ir mērķēti uz konkrētas darblapas diapazoniem un šūnām. Darblapas notikums tiks aktivizēts notikumos, kas notiek konkrētajā darblapā (darblapā, kurā ir kods).
Kur tiek rakstīti darblapas notikumi?
Darblapas notikumi tiek ierakstīti darblapas objektā.
Kā uzrakstīt darblapas notikumu apstrādes kodu?
Tas ir tas pats, kas darbgrāmatas notikumi.
1. Projekta izpētē veiciet dubultklikšķi uz darblapas objekta. Darblapai tiks parādīts koda rakstīšanas apgabals. Visi darblapas darbības jomas pasākumi ir ierakstīti šajās darblapās.
2. Koda rakstīšanas apgabala augšējā kreisajā stūrī redzēsiet nolaižamo izvēlni. Noklikšķiniet uz nolaižamās izvēlnes un izvēlieties darblapu. Pēc noklusējuma tas ir vispārīgs.
3. Kad esat izvēlējies darblapu no kreisās nolaižamās izvēlnes, tā pēc noklusējuma ievietos darblapas_izvēlneMainīt notikuma apakšprogrammu. Bet, ja vēlaties izmantot citu notikumu apakšprogrammu, izvēlieties to nolaižamajā augšējā labajā stūrī. Tajā tiks uzskaitīti visi pieejamie darblapas notikumi.
4. Izvēlieties vajadzīgo notikumu. Piemēra labad es izvēlos notikumu Worksheet_SelectionChange (ByVal Target As Range). Šis notikums tiek aktivizēts katru reizi, kad tiek mainīta lapas diapazona atlase.
Darblapas notikuma piemērs
Privāta apakšdarblapa_SelectionChange (ByVal Target kā diapazons) MsgBox "You are in" & Target.Address End Sub
Iepriekš minētais notikums ir uzrakstīts darbgrāmatas 1. lapā. Šis notikums parādīs diapazona adresi, kuru esat izvēlējies lapā, kurā ir kods, kad mainīsit diapazona izvēli. Zemāk ir vēl daži darblapas notikumu piemēri.
Darblapas notikumi lielākoties tiek izmantoti dinamiskos informācijas paneļos. Lai padarītu informācijas paneļus dinamiskus, varat izmantot šūnas kā izvēles rūtiņas vai aktīvas atlases.
Zemāk ir vēl daži darblapas notikumu piemēri.
Darblapas maiņas notikuma izmantošana, lai palaistu makro, kad tiek veiktas izmaiņas
Palaidiet makro, ja lapā tiek veiktas izmaiņas noteiktā diapazonā
Vienkāršākais VBA kods, lai izceltu pašreizējo rindu un kolonnu, izmantojot
Diagrammas notikumi
Programmā Excel ir divu veidu diagrammas notikumi. Viens no tiem ir parasti iegultās diagrammas, kuras mēs šeit detalizēti apspriedām. Tas ir līdzīgi notikumiem lietojumprogrammas līmenī.
Vēl viena ir diagrammas lapa. Šīs ir īpašās lapas, kurās ir tikai diagrammas, kas saistītas ar dažu citu lapu datiem.
Runājot par notikumiem, tie ir līdzīgi parastajiem palagiem.
Kur rakstīt diagrammu notikumus?
Diagrammas notikumi tiek ierakstīti diagrammas objektā. Vienkārši veiciet dubultklikšķi uz diagrammas lapas, lai atvērtu koda apgabalu.
Kā uzrakstīt diagrammas notikumus?
Izpildiet šīs darbības:
1. Projekta izpētē veiciet dubultklikšķi uz diagrammas lapas objekta, lai atvērtu koda apgabalu. Šeit ir rakstīti visi ar diagrammas lapu saistīti notikumi.
2. Koda apgabala augšējā labajā stūrī redzēsit parasto nolaižamo izvēlni. Nolaižamajā izvēlnē atlasiet diagrammu.
3. Labajā stūrī atlasiet vajadzīgo notikumu.
Piemēram, ja es vēlos kaut ko darīt, tiklīdz lietotājs izvēlas diagrammu, es izmantošu notikumu Chart_Activate.
Piemērs: Diagrammas lapas notikums
Privāta apakšdiagramma_Activate () MsgBox "Diagramma ir atsvaidzināta" beigu apakš
Iepriekš minētais koda fragments tiks aktivizēts, tiklīdz atlasīsit diagrammas lapu. Šeit tas tikai parādīs ziņojumu, ka diagramma ir atsvaidzināta, bet jūs varat darīt daudz. Tāpat kā jūs varat dinamiski atlasīt diagrammas datu diapazonu pirms šī ziņojuma parādīšanas.
Tālāk ir sniegti vēl daži diagrammas notikumu piemēri:
UserForm notikumi
Lietotāja veidlapas notikums ir tāds pats kā citi notikumi. Lietotāja veidlapā notiek vairāki notikumi. Jūs varat izmantot šos notikumus, lai aktivizētu notikumus.
Kur rakstīt lietotāja veidlapas notikumus?
Lai uzrakstītu lietotāja veidlapas notikumu, vispirms jāievieto UserForm.
1. Pēc tam ar peles labo pogu noklikšķiniet uz UserForm un noklikšķiniet uz skata koda. Tagad tiks atvērts koda apgabals.
2. Tagad augšējā kreisajā stūrī atlasiet Userform.
3. Nolaižamajā kreisajā izvēlnē atlasiet notikumu, kuru vēlaties izmantot, lai aktivizētu koda izpildi.
4. Starp koda notikuma kodu ierakstiet vajadzīgo kodu.
Zemāk redzamais piemērs vienkārši parāda ziņojumu, kad ir aktivizēta lietotāja veidlapa.
Private Sub UserForm_Activate () MsgBox "Labdien, lūdzu, vēlreiz pārbaudiet savu informāciju." Beigt apakš
Iepriekš minētais kods parāda tikai ziņojumu, taču jūs varat izmantot šo notikumu, lai iepriekš aizpildītu veidlapu ar dažām noklusējuma ievadēm vai izmantotu lapas informāciju, lai to aizpildītu.
Pasākums Onkey
Šie notikumi tiek aktivizēti, nospiežot noteiktu taustiņu vai taustiņu kombināciju. Tas ir līdzīgi kā savējo izveide īsinājumtaustiņos.
Notikums OnKey patiesībā ir lietojumprogrammas klases funkcija vai metode, kurai ir divi argumenti, kā parādīts zemāk:
Application.onkey Atslēga, ["procedūra"]
The taustiņu ir atslēga vai taustiņu kombinācija, kuru vēlaties izmantot kā aktivizētāju.
"Procedūra" ir neobligāts arguments, kas ir tās procedūras vai makro virknes nosaukums, kuru vēlaties aktivizēt. Ja nenosakāt procedūru, tā aktivizēs pašreizējo procedūru.
Kur rakstīt notikumus Onkey?
Jūs varat uzrakstīt notikumu Onkey jebkurā normālā modulī. Tie darbosies parastajos moduļos, bet vispirms jums būs jāizpilda šī apakšprogramma, kurā ir norādījumi par taustiņiem. Nav tā, ka esat palaidis makro katru reizi, lai izmantotu Onkey notikumus. Atverot darbgrāmatu, makro vajadzēs palaist tikai vienu reizi.
Ja nevēlaties palaist makro, kurā ir notikumi Onkey, varat tos ievietot darbgrāmatas objekta notikumā workbook_open (). Tas aktivizēs Onkey notikumus, tiklīdz atverat darbgrāmatu, kurā ir Onkey notikumi.
Kā uzrakstīt Onkey notikumu apstrādātāju?
Tātad, ja jums jau ir daži makro, kurus vēlaties palaist ar norādīto saīsni, tad uzrakstiet jaunu procedūru, kurā būs īsceļu saraksts. Piemēram, šeit man ir makro, kas parāda ziņojumu, ka saīsne darbojas.
Sub show_msg () MsgBox "Saīsne darbojas" End Sub
Tagad es vēlos palaist šo makro, nospiežot taustiņu kombināciju CTRL+j. Lai to izdarītu, es uzrakstu zemāk esošo VBA kodu.
Sub Activate_Onkey () Application.OnKey "^j", "show_msg" End Sub
"^" (karāts) ir paredzēts CTRL taustiņam. Zemāk ir tabula visiem galvenajiem saīsinājumiem programmā Excel VBA.
https://docs.microsoft.com/en-us/office/vba/api/excel.application.onkey
Kā aktivizēt Onkey notikumu?
Pēc iepriekš minētā koda ierakstīšanas modulī, ja dodaties uz Excel skatu un izmantojat taustiņu CTRL+J, tas nedarbosies. Pirmkārt, jums jāpalaiž apakšnodaļa, kas nosaka OnKey notikumus. Tāpēc palaidiet vienumu Activate_Onkey (), un tad tas darbosies visu sesiju. Kad aizverat darbgrāmatu, kurā ir Onkey definīcijas, tā pārstāj darboties.
Onkey definīcijas varat ievietot procedūrā, kuru vēlaties īstenot. Bet tad makro vienreiz būs jāpalaiž manuāli. Tāpēc es iesaku Onkey notikumus ievietot notikumos Workbook_Open. Tas automātiski aktivizēs visus Onkey notikumus.
Ontime notikums programmā Excel
Kā norāda nosaukums, notikums Onkey aktivizē norādīto apakšprogrammu pēc iespējas ātrāk. Programma Excel var būt aizņemta citos uzdevumos, piemēram, izpildot instrukciju kopu vai atrodoties iepriekšējās kopēšanas režīmā. Tādā gadījumā tas var aizkavēt Ontime notikumu. Tāpēc arguments tiek parādīts kā agrākais laiks.
OnTime notikuma sintakse
Notikums Ontime ir lietojumprogrammu klases funkcija. Tam ir divi būtiski argumenti un divi fakultatīvi argumenti.
Application.Ontime EarliestTime, "Procedūra", [LatestTime], [Grafiks]
TheAgrākais laiksir laiks, kad vēlaties palaist procedūru. Bet programma Excel izpildīs norādīto makro pēc noteiktā agrāka laika, tikai tad, kad tas būs bezmaksas.
The "Procedūra" ir tās procedūras nosaukums, kuru vēlaties izpildīt norādītajā laikā.
Kā jau teicu, nav garantijas, ka Excel veiks jūsu procedūru noteiktajā laikā. The LastestTimeir laiks pēc agrākā laika, lai dotu programmai Excel logu brīvi darboties un izpildīt savu uzdevumu.
Ja vēlaties deaktivizēt plānoto OnTime notikumu, iestatiet tografiks uz nepatiesu.
Kur rakstīt Ontime Event?
OnTime notikumu var rakstīt jebkurā modulī. Jums būs jāizpilda notikums, kas ietver procedūru, lai aktivizētu notikumu.
Ja vēlaties, lai jūsu notikums tiktu aktivizēts, tiklīdz atverat darbgrāmatu, kurā ir notikums, ievietojiet to notikumā workbook_open. Tas aktivizēs notikumu, tiklīdz programmā Excel atverat notikuma kodu.
Kā uzrakstīt Ontime notikumu?
Pieņemsim, ka jums ir apakšprogramma, kas parāda pašreizējo datumu un laiku
Sub show_msg () MsgBox "Pašreizējais datums un laiks ir" un tagad beigu apakš
Tagad, ja vēlaties, lai šī procedūra tiktu veikta pēc 5 sekundēm pēc cita makro palaišanas, jums būs jāievieto šis kods.
Sub OnTimeTest () '-daži citi uzdevumi Application.ontime Now + (5/24 / 60 /60), "show_msg" End Sub
Pēc OnTimeTest apakšprogrammas palaišanas pēc piecām sekundēm tā tiks aktivizēta apakšprogramma show_msg. Tāpēc būs labi, ja vēlaties kaut ko darīt pēc dažām reizēm, kad esat darījis kaut ko citu, izmantojiet iepriekš minēto struktūru.
Ja vēlaties, lai jūsu makro darbotos ik pēc dažām sekundēm/minūtēm/stundām/utt., Varat izsaukt šo funkciju. Tā būtu sava veida rekursīva apakšprogramma.
Sub OnTimeTest () MsgBox "Pašreizējais datums un laiks ir" & Now Application.ontime Now + (5/24 / 60 /60), "OnTimeTest" beigu apakšdaļa
Iepriekš minētā apakšprogramma tiks palaista pēc katrām piecām sekundēm, kad tā tiks sākta.
Tātad, jā, puiši, šie ir notikumi programmā Excel VBA. Dažām no iepriekš minētajām kategorijām ir dažādi notikumu izraisītāji. Protams, es nevaru tos visus šeit izskaidrot. Tas padarīs grāmatu garu rakstu. Šis bija tikai ievads par notikumiem, kas pieejami Excel VBA. Lai iegūtu vairāk informācijas, sekojiet rakstos iegultajām saitēm. Tālāk esmu minējis dažus saistītus rakstus. Jūs varat arī tos izlasīt.
Ja jums ir šaubas saistībā ar šo rakstu vai kādu citu Excel/VBA domu, jautājiet mums komentāru sadaļā zemāk.
Darblapas notikumi programmā Excel VBA| Darblapas notikums ir patiešām noderīgs, ja vēlaties palaist savus makro, kad lapā notiek noteikts notikums.
Darbgrāmatas notikumi, izmantojot VBA programmā Microsoft Excel | Darbgrāmatas pasākumi darbojas ar visu darbgrāmatu. Tā kā visas lapas ir daļa no darbgrāmatas, šie notikumi darbojas arī pie tām.
Neļaujiet automātam/eventmacro izpildīt, izmantojot Microsoft Excel VBA | Lai novērstu auto_open makro darbību, izmantojiet taustiņu Shift.
Diagrammējiet objektu notikumus, izmantojot VBA programmā Microsoft Excel | Diagrammas ir sarežģīti objekti, un tiem ir pievienotas vairākas sastāvdaļas. Lai izveidotu notikumus diagrammā, mēs izmantojam klases moduli.
Populāri raksti:
50 Excel saīsnes, lai palielinātu produktivitāti | Ātrāk izpildiet savu uzdevumu. Šie 50 īsceļi ļaus jums strādāt vēl ātrāk programmā Excel.
Funkcija VLOOKUP programmā Excel | Šī ir viena no visbiežāk izmantotajām un populārākajām Excel funkcijām, kas tiek izmantota, lai meklētu vērtību no dažādiem diapazoniem un lapām.
COUNTIF programmā Excel 2016 | Saskaitiet vērtības ar nosacījumiem, izmantojot šo apbrīnojamo funkciju. Jums nav jāfiltrē dati, lai uzskaitītu konkrētu vērtību. Skaitītāja funkcija ir būtiska, lai sagatavotu informācijas paneli.
Kā lietot SUMIF funkciju programmā Excel | Šī ir vēl viena būtiska informācijas paneļa funkcija. Tas palīdz apkopot vērtības noteiktos apstākļos.