Kör makro om någon ändring görs på blad i specificerat intervall

Innehållsförteckning:

Anonim

Under dina VBA -metoder skulle du behöva köra makron när ett visst område eller en cell ändras. I så fall använder vi ändringshändelsen för att köra makron när en ändring görs i ett målintervall. Händelser i VBA gör att vi kan köra makron när en viss händelse inträffar.

Syntax VBA Range Change Event

Private Sub Worksheet_Change (ByVal Target As Range) If Not Intersect (Target, Range ("your_range")) is Nothing Call your_macro End If End Sub

Händelsen fungerar inte i moduler. Du måste skriva in dem i objekt (kalkylblad, diagram, arbetsbok).

Lat har ett exempel för att lära sig hur man kör ett makro när en ändring görs i ett visst intervall.

Exempel: Kör ett VBA -makro när en ändring görs i intervall A2: A100

Först väljer vi det blad som händelsen ska inträffa på. Dubbelklicka på det bladet i VBA -redigeraren och kopiera nedanstående kod eller generisk kod ovan och gör ändringar enligt dina krav.

I det här exemplet vill jag köra en makro/VBA -kod när en ändring görs i intervall A2: A100 på blad 2. För att göra det dubbelklickar jag på sheet2 i projektutforskaren. Det öppnar kodsidan för det bladet. Du kan högerklicka på arket och klicka på visningskoden för att göra detsamma.

Jag måste använda ändringshändelsen. För det använder vi standardrutinen Subrutine Worksheet_Change (ByVal Target As Range). Det utlöses när en specifik ändring görs. Så vår kod är följande:

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 gör några ändringar i intervall A2: A100 på Sheet2, kallas subrutinen TestEvent, som du kan se i gifen ovan.

TestEvent är den offentliga underrutinen i modul2. Det dyker bara upp ett meddelande om att evenemanget fungerar.

Sub TestEvent () MsgBox "Händelsen fungerar!" Avsluta Sub 

Hur fungerar det?

Vi har ställt ett villkor:

If Not Intersect (Target, Range ("A2: A100")) är ingenting då

Här skärs (Target, Range ("A2: A100")) Is Nothing returnerar True om ingen ändring görs i Range A2: A100. Vi sätter en Not -operatör före detta uttalande som vänder utmatningen från "Intersect (Target, Range (" A2: A100 "))". Om ingen förändring görs i intervall A2: A100, returnerar uttrycket Falls och sub TestEvent får inte samtalet. Om du gör en ändring i någon cell i intervall A2: A100, kommer uttrycket att returnera True och händelsen inträffar. Och det är vad som händer här.

Notera: Du kan lägga in vilken subrutin som helst i detta block. Det kan vara från vilken modul som helst. Men det borde vara en offentlig delprogram. Du kan ställa in intervallet i vilken omfattning som helst. Hela arket är gränsen.

Så ja killar, så här kan du ringa till en underrutin eller köra en makro/VBA -kod när en ändring görs i ett visst intervall. Det var ett grundläggande exempel på händelser. Denna händelse utlöses endast när ändringen är textbaserad. Med textbaserat menar jag att om du skriver något i cellerna eller tar bort så kommer händelsen att triggas. Om du ändrar cellernas formatering utlöses det inte. Det finns andra metoder för att göra det.

Jag hoppas att det var till hjälp. Om du har några frågor relaterade till detta VBA -ämne eller något annat Excel -relaterat ämne, låt mig veta kommentarsfältet nedan. Och kolla in våra andra relaterade och populära inlägg som nämns nedan.

Kör makro när någon ändring görs på arket| Så för att köra ditt makro när arket uppdateras använder vi Arbetsbladshändelser i VBA.

Enklaste VBA -kod för att markera aktuell rad och kolumn med| Använd det här lilla VBA -utdraget för att markera den aktuella raden och kolumnen i arket.

Arbetsbladshändelser i Excel VBA| Arbetsbladshändelsen är verkligen användbar när du vill att dina makron ska köras när en viss händelse inträffar på arket.

Populära artiklar:

50 Excel -genvägar för att öka din produktivitet | Bli snabbare på din uppgift. Dessa 50 genvägar får dig att arbeta ännu snabbare med Excel.

VLOOKUP -funktionen i Excel | Detta är en av de mest använda och populära Excel -funktionerna som används för att leta upp värde från olika intervall och ark.

COUNTIF i Excel 2016 | Räkna värden med förhållanden med denna fantastiska funktion. Du behöver inte filtrera dina data för att räkna specifikt värde. Countif -funktionen är avgörande för att förbereda din instrumentpanel.

Hur man använder SUMIF -funktionen i Excel | Detta är en annan viktig instrumentpanel. Detta hjälper dig att summera värden på specifika förhållanden.