Utilizarea evenimentului de modificare a foii de lucru pentru a rula macro când se efectuează orice modificare

Cuprins:

Anonim

Dacă sunteți aici, probabil că doriți să aflați cum să rulați un subrutină de fiecare dată când se face o modificare într-o anumită foaie. Acest articol va învăța exact asta. Deci sa începem.

Sintaxa pentru gestionarea evenimentelor de modificare a foii de lucru este:

Private Sub worksheet_change (ByVal Target As Range) „codul tău” „Termină Sub 

Acest cod trebuie să fie scris într-un obiect foaie de lucru pentru a funcționa, nu într-un modul normal.

Private Sub worksheet_change (ByVal Target As Range) Mesaj "Ați actualizat ceva în această foaie" End Sub 

Dacă aveți acest cod pe foaia 1 și scrieți sau ștergeți ceva în foaia 1, va apărea masajul care „Ați actualizat ceva în această foaie”.

Nu va funcționa în module normale. Dar puteți apela subrutine din orice modul. La fel vom face și în această sesiune.


Scenariu:

Rulați Macro Excel dacă se face orice modificare pe foaia de lucru

Deci, să presupunem că avem o macro care schimbă culoarea celulelor în funcție de anumite condiții. La fel ca Formarea condiționată a Excelului. Singura diferență este că culoarea celulelor se schimbă atunci când rulăm acest cod VBA folosind un buton sau comandă de executare, nu când valorile se schimbă. Vrem ca macro-ul să ruleze ori de câte ori se face o modificare în foaie. Aici VBA Events vă va ajuta. Acum, pentru a face acest lucru, vom folosi Evenimentul de schimbare a foii de lucru.

Urmați acești pași:

  • Accesați Project Explorer și faceți dublu clic pe foaia pe care doriți să declanșați evenimentul worksheet.change. Vreau să declanșez evenimentul când sunt făcute unele modificări pe Sheet2, așa că fac dublu clic pe Sheet2. De asemenea, puteți face clic dreapta și faceți clic pe codul de vizualizare pentru a deschide zona de scriere a codului pentru obiectele din foaie. În zona de cod, scrieți această linie de cod.
    Private Sheet Worksheet_Change (ByVal Target As Range) End Sub 

    worksheet_change (Target as Range) este un subrutin conservat care rulează când se face o modificare a codului care conține foaia.

    Când veți scrie acest cod, veți vedea obiectul schimbându-se în foaia de lucru. Vedeți meniul derulant din stânga sus. În meniul derulant din dreapta sus, evenimentul este „schimbare”.
    Dacă utilizați meniul derulant și selectați foaia de lucru în meniul derulant din stânga, toate evenimentele disponibile vor fi afișate în meniul derulant din dreapta. Indiferent de meniul derulant pe care îl alegeți, codul pentru evenimentul respectiv va fi scris automat. Trebuie doar să-l umpleți cu subrutine personalizate.

  • Acum pur și simplu puneți codul în acest segment. Vreau să apelez la subrutina mea care se află într-un modul. Deci, numesc pur și simplu acel subrutină în acest handler de evenimente de foaie de lucru. Subrutina mea este FormatUsingVBA () în Module1
    Private Sub worksheet_change (ByVal Target As Range) Format apel Folosind VBA End Sub

Acum, ori de câte ori vom face o modificare în sheet2, va rula macro FromatUsingVBA.

Deci da, băieți, acest lucru poate face să ruleze un script VBA atunci când o foaie își modifică conținutul, folosind handlerul Event Change Change Event. Sper că a fost de ajutor. Dacă aveți întrebări cu privire la acest gestionar de evenimente, menționați-l în secțiunea de comentarii.

Cel mai simplu cod VBA pentru a evidenția rândul curent și coloana folosind| Utilizați acest mic fragment VBA pentru a evidenția rândul și coloana curentă a foii.

Foaia de lucru Evenimente în Excel VBA| Evenimentul foii de lucru este foarte util atunci când doriți să ruleze macrocomenzile atunci când apare un eveniment specificat pe foaie.

Executați macro dacă există modificări efectuate pe foaie în intervalul specificat| Pentru a rula codul macro atunci când se modifică valoarea dintr-un interval specificat, utilizați acest cod VBA. Acesta detectează orice modificare făcută în intervalul specificat și va declanșa evenimentul.

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face să lucrați și mai rapid pe Excel.

Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.

COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu este nevoie să vă filtrați datele pentru a număra o anumită valoare. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.

Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.