Kør makro, hvis der foretages ændringer på ark i specificeret område

Indholdsfortegnelse:

Anonim

I hele din VBA -praksis får du behovet for at køre makroer, når et bestemt område eller en celle ændres. I så fald bruger vi ændringshændelsen til at køre makroer, når der foretages en ændring i et målområde. Begivenheder i VBA gør det muligt for os at køre makroerne, når en bestemt hændelse opstår.

Syntaks VBA Range Change Event

Private Sub Worksheet_Change (ByVal Target As Range) If Not Intersect (Target, Range ("your_range")) er ingenting Ring derefter til din_macro End If End Sub

Begivenheden fungerer ikke i moduler. Du skal skrive dem ind i objekter (regneark, diagrammer, projektmappe).

Lat har et eksempel til at lære at køre en makro, når der foretages en ændring i et bestemt område.

Eksempel: Kør en VBA -makro, når der foretages en ændring i område A2: A100

Først vælger vi det ark, hvor begivenheden vil forekomme. Dobbeltklik på dette ark i VBA -editor og kopier nedenstående kode eller generisk kode ovenfor og foretag ændringer i henhold til dine krav.

I dette eksempel vil jeg køre en makro/VBA -kode, når der foretages en ændring i område A2: A100 på ark 2. For at gøre det dobbeltklikker jeg på sheet2 i projektudforsker. Det åbner kodesiden for det ark. Du kan højreklikke på arket og klikke på visningskoden for at gøre det samme.

Jeg skal bruge ændringsbegivenheden. Til det bruger vi standard underrutine Worksheet_Change (ByVal Target As Range). Det udløses, når der foretages en bestemt ændring. Så vores kode er denne:

Private Sub Worksheet_Change (ByVal Target As Range) Hvis det ikke skærer hinanden (Target, Range ("A2: A100")) er ingenting, så ring TestEvent End If End Sub 

Når du foretager ændringer i område A2: A100 på Sheet2, kaldes underrutinen TestEvent, som du kan se i gif'en ovenfor.

TestEvent er den offentlige underprogram i modul2. Det dukker simpelthen op en besked om, at begivenheden fungerer.

Sub TestEvent () MsgBox "Begivenheden fungerer!" Afslut Sub 

Hvordan virker det?

Vi har sat en betingelse:

Hvis ikke skæres (mål, rækkevidde ("A2: A100")) er der ikke noget

Her skærer man (Target, Range ("A2: A100")) Is Nothing returnerer True, hvis der ikke foretages nogen ændring i Range A2: A100. Vi sætter en Not -operator foran denne erklæring, der vender output givet af "Intersect (Target, Range (" A2: A100 "))". Derfor, hvis der ikke foretages nogen ændringer i område A2: A100, returnerer udtrykket Falls, og sub TestEvent modtager ikke opkaldet. Hvis du foretager en ændring i en celle i område A2: A100, returnerer udtrykket True og hændelsen vil forekomme. Og det er det, der sker her.

Bemærk: Du kan sætte enhver underprogram i denne blok. Det kan være fra ethvert modul. Men det burde være en offentlig underprogram. Du kan indstille området i ethvert omfang. Hele arket er grænsen.

Så ja fyre, sådan kan du kalde en underprogram eller køre en makro/VBA -kode, når der foretages en ændring i et bestemt område. Det var et grundlæggende hændelseseksempel. Denne hændelse udløses kun, når ændringen er tekstbaseret. Med tekstbaseret mener jeg, at hvis du skriver noget i cellerne eller sletter, vil hændelsen udløses. Hvis du ændrer cellernes formatering, udløses det ikke. Der er andre metoder til at gøre det.

Jeg håber, det var nyttigt. Hvis du har spørgsmål vedrørende dette VBA -emne eller andre Excel -relaterede emner, så lad mig vide afsnittet nedenfor. Og tjek vores andre relaterede og populære indlæg nævnt nedenfor.

Kør makro, når der foretages ændringer på ark| Så for at køre din makro, når arket opdateres, bruger vi regnearkhændelser i VBA.

Den enkleste VBA -kode til at fremhæve den aktuelle række og kolonne ved hjælp af| Brug dette lille VBA -udsnit til at fremhæve den aktuelle række og kolonne i arket.

Regnearket Begivenheder i Excel VBA| Regnearkshændelsen er virkelig nyttig, når du vil have dine makroer kørt, når en bestemt hændelse forekommer på arket.

Populære artikler:

50 Excel -genveje til at øge din produktivitet | Få hurtigere til din opgave. Disse 50 genveje får dig til at arbejde endnu hurtigere i Excel.

VLOOKUP -funktionen i Excel | Dette er en af ​​de mest anvendte og populære funktioner i excel, der bruges til at slå værdi op fra forskellige områder og ark.

COUNTIF i Excel 2016 | Tæl værdier med betingelser ved hjælp af denne fantastiske funktion. Du behøver ikke filtrere dine data for at tælle specifik værdi. Countif -funktion er afgørende for at forberede dit dashboard.

Sådan bruges SUMIF -funktionen i Excel | Dette er endnu en vigtig instrumentbrætfunktion. Dette hjælper dig med at opsummere værdier på bestemte betingelser.