Gjennom din VBA -praksis vil du få behov for å kjøre makroer når et bestemt område eller en celle endres. I så fall bruker vi endringshendelsen for å kjøre makroer når det gjøres en endring i et målområde. Hendelser i VBA lar oss kjøre makroene når en bestemt hendelse oppstår.
Syntaks VBA Range Change Event
Private Sub Worksheet_Change (ByVal Target As Range) If Not Intersect (Target, Range ("your_range")) er ingenting Ring deretter til din_makro End If End Sub
Arrangementet fungerer ikke i moduler. Du må skrive dem inn i objekter (regneark, diagrammer, arbeidsbok).
Lat har et eksempel for å lære å kjøre en makro når det gjøres en endring i et spesifisert område.
Eksempel: Kjør en VBA -makro når det gjøres en endring i område A2: A100
Først velger vi arket som hendelsen skal skje på. Dobbeltklikk på det arket i VBA -editoren og kopier koden nedenfor eller generisk kode ovenfor og gjør endringer i henhold til dine krav.
I dette eksemplet vil jeg kjøre en makro/VBA -kode når det gjøres en endring i område A2: A100 på ark 2. For å gjøre det, dobbeltklikker jeg på sheet2 i prosjektutforsker. Det åpner kodesiden for det arket. Du kan høyreklikke på arket og klikke på visningskoden for å gjøre det samme.
Jeg må bruke endringshendelsen. For det bruker vi standard underrutine Worksheet_Change (ByVal Target As Range). Det utløses når en spesifisert endring gjøres. Så koden vår er denne:
Private Sub Worksheet_Change (ByVal Target As Range) If Not Intersect (Target, Range ("A2: A100")) is Nothing Then Call TestEvent End If End Sub
Når du gjør noen endringer i område A2: A100 på Sheet2, blir subrutinen TestEvent kalt, som du kan se i gifen ovenfor.
TestEvent er den offentlige subrutinen i modul2. Det dukker bare opp en melding om at hendelsen fungerer.
Sub TestEvent () MsgBox "Arrangementet fungerer!" Slutt Sub
Hvordan virker det?
Vi har satt en betingelse:
Hvis ikke krysser (mål, rekkevidde ("A2: A100")) er ingenting da
Her krysser (mål, område ("A2: A100")) er ingenting returnerer sant hvis det ikke gjøres noen endring i område A2: A100. Vi setter en Not -operatør foran denne setningen som reverserer utgangen gitt av "Intersect (Target, Range (" A2: A100 "))". Derfor, hvis det ikke gjøres noen endring i område A2: A100, returnerer uttrykket Falls og undersøkelsen TestEvent får ikke samtalen. Hvis du gjør en endring i en celle i område A2: A100, vil uttrykket returnere True og hendelsen vil skje. Og det er det som skjer her.
Merk: Du kan sette hvilken som helst underprogram i denne blokken. Det kan være fra hvilken som helst modul. Men det bør være en offentlig underprogram. Du kan angi området i hvilken som helst grad. Hele arket er grensen.
Så ja gutta, slik kan du kalle en underprogram eller kjøre en makro/VBA -kode når det gjøres en endring i et spesifisert område. Det var et grunnleggende hendelseseksempel. Denne hendelsen utløses bare når endringen er tekstbasert. Med tekstbasert mener jeg at hvis du skriver noe i cellene eller sletter, vil hendelsen utløses. Hvis du endrer formateringen av cellene, vil den ikke utløses. Det er andre metoder for å gjøre det.
Jeg håper det var nyttig. Hvis du har spørsmål knyttet til dette VBA -emnet eller andre excelrelaterte emner, gi meg beskjed om kommentarfeltet nedenfor. Og sjekk ut våre andre relaterte og populære innlegg nevnt nedenfor.
Kjør makro når det gjøres noen endringer på arket| Så for å kjøre makroen din når arket oppdateres, bruker vi regnearkhendelser i VBA.
Enkleste VBA -kode for å markere gjeldende rad og kolonne ved hjelp| Bruk denne lille VBA -biten til å markere gjeldende rad og kolonne i arket.
Regnearket Hendelser i Excel VBA| Regnearkhendelsen er veldig nyttig når du vil at makroene skal kjøres når en spesifisert hendelse oppstår på arket.
Populære artikler:
50 Excel -snarveier for å øke produktiviteten | Bli raskere på oppgaven din. Disse 50 snarveiene får deg til å jobbe enda raskere med Excel.
VLOOKUP -funksjonen i Excel | Dette er en av de mest brukte og populære funksjonene til excel som brukes til å slå opp verdi fra forskjellige områder og ark.
COUNTIF i Excel 2016 | Tell verdier med betingelser ved hjelp av denne fantastiske funksjonen. Du trenger ikke filtrere dataene dine for å telle spesifikk verdi. Countif -funksjonen er avgjørende for å forberede dashbordet.
Slik bruker du SUMIF -funksjonen i Excel | Dette er en annen viktig funksjon på dashbordet. Dette hjelper deg med å oppsummere verdier på spesifikke forhold.