Werkbladwijzigingsgebeurtenis gebruiken om macro uit te voeren wanneer een wijziging is aangebracht

Inhoudsopgave:

Anonim

Als je hier bent, wil je waarschijnlijk leren hoe je een subroutine uitvoert telkens wanneer er een wijziging wordt aangebracht in een specifiek blad. Dit artikel zal precies dat leren. Dus laten we beginnen.

De syntaxis voor de gebeurtenishandler voor werkbladwijzigingen is:

Private Sub worksheet_change (ByVal Target As Range) 'jouw code' ' End Sub 

Deze code moet in een werkbladobject worden geschreven om te kunnen werken, niet in een normale module.

Private Sub worksheet_change(ByVal Target As Range) Msgbox "Je hebt iets in dit blad bijgewerkt" End Sub 

Als je deze code op blad1 hebt staan ​​en je schrijft of verwijdert iets in blad1, dan zal de massage verschijnen dat "Je hebt iets in dit blad bijgewerkt".

Het werkt niet in normale modules. Maar u kunt vanuit elke module subroutines aanroepen. Dat doen we ook in deze sessie.


Scenario:

Voer Excel-macro uit als er een wijziging is aangebracht in het werkblad

Laten we zeggen dat we een macro hebben die de kleur van cellen verandert op basis van een bepaalde voorwaarde. Net als voorwaardelijke opmaak van Excel. Het enige verschil is dat de kleur van cellen verandert wanneer we deze VBA-code uitvoeren met een knop of een opdracht uitvoeren, niet wanneer de waarden veranderen. We willen dat de macro wordt uitgevoerd wanneer er een wijziging in het blad wordt aangebracht. Hier zal VBA Events helpen. Om dit te doen, gebruiken we Worksheet Change Event.

Volg deze stappen:

  • Ga naar projectverkenner en dubbelklik op het blad waarop u de worksheet.change-gebeurtenis wilt activeren. Ik wil de gebeurtenis activeren wanneer er enkele wijzigingen zijn aangebracht op Blad2, dus ik dubbelklik op Blad2. U kunt ook met de rechtermuisknop klikken en op de weergavecode klikken om het codeschrijfgebied voor werkbladobjecten te openen. In het codegebied schrijft u deze regel code.
    Private Sub Worksheet_Change (ByVal Target As Range) End Sub 

    worksheet_change (Target as Range) is een behouden subroutine die wordt uitgevoerd wanneer een wijziging wordt aangebracht in het code bevattende blad.

    Wanneer u deze code schrijft, ziet u dat het object verandert in het werkblad. Zie de vervolgkeuzelijst linksboven. In de vervolgkeuzelijst rechtsboven is de gebeurtenis 'wijzigen'.
    Als u de vervolgkeuzelijst gebruikt en het werkblad in de linker vervolgkeuzelijst selecteert, worden alle beschikbare gebeurtenissen in de rechter vervolgkeuzelijst weergegeven. Welke vervolgkeuzelijst u ook kiest, de code voor dat evenement wordt automatisch geschreven. U hoeft het alleen maar te vullen met uw aangepaste subroutines.

  • Plaats nu gewoon uw code in dit segment. Ik wil mijn subroutine aanroepen die in een module zit. Dus ik noem die subroutine gewoon in dit werkblad event handler. Mijn subroutine is FormatUsingVBA() in Module1
    Private Sub-werkblad_change (ByVal Target As Range) Oproepformaat met behulp van VBA End Sub

Wanneer we nu een wijziging in blad2 aanbrengen, wordt de macro FromatUsingVBA uitgevoerd.

Dus ja jongens, dit is hoe een VBA-script kan worden uitgevoerd wanneer een blad van inhoud verandert, met behulp van Worksheet Change Event-handler. Ik hoop dat het nuttig was. Als je vragen hebt over deze gebeurtenishandler, vermeld dit dan in het opmerkingengedeelte.

Eenvoudigste VBA-code om huidige rij en kolom te markeren met behulp van| Gebruik dit kleine VBA-fragment om de huidige rij en kolom van het blad te markeren.

De werkbladgebeurtenissen in Excel VBA| De werkbladgebeurtenis is erg handig als u wilt dat uw macro's worden uitgevoerd wanneer een opgegeven gebeurtenis op het werkblad plaatsvindt.

Voer macro uit als er een wijziging is aangebracht op het blad in het opgegeven bereik| Gebruik deze VBA-code om uw macrocode uit te voeren wanneer de waarde in een opgegeven bereik verandert. Het detecteert elke wijziging die in het opgegeven bereik is aangebracht en activeert de gebeurtenis.

Populaire artikels:

50 Excel-snelkoppelingen om uw productiviteit te verhogen | Word sneller in uw taak. Met deze 50 sneltoetsen werk je nog sneller in Excel.

De VERT.ZOEKEN-functie in Excel | Dit is een van de meest gebruikte en populaire functies van Excel die wordt gebruikt om waarde op te zoeken uit verschillende bereiken en bladen.

AANTAL.ALS in Excel 2016 | Tel waarden met voorwaarden met behulp van deze geweldige functie. U hoeft uw gegevens niet te filteren om een ​​specifieke waarde te tellen. Countif-functie is essentieel om uw dashboard voor te bereiden.

Hoe de SUMIF-functie in Excel te gebruiken? | Dit is een andere essentiële functie van het dashboard. Dit helpt u bij het optellen van waarden voor specifieke voorwaarden.