V Excelu morda delate s podatki, ki so tako občutljivi, da jih boste želeli shraniti vsakič, ko se spremeni določena celica ali obseg celic. Ta makro vam omogoča, da določite obseg celic, ki ob spremembi prisilijo, da se delovni zvezek shrani.
V prikazanem primeru želite, da se delovni zvezek shrani, ko se izvede urejanje katere koli celice v obsegu C5:C16.
Če spremenite celico v C5:C16, se delovni zvezek shrani.
Kako deluje makro
Skrivnost te kode je metoda Intersect. Ker ne želite shraniti delovnega lista, ko se spremeni stara celica, uporabite metodo Intersect, da ugotovite, ali se ciljna celica (celica, ki se je spremenila) seka z obsegom, navedenim kot obseg sprožilca (v tem primeru C5:C16). .
Metoda Intersect vrne eno od dveh stvari: objekt Range, ki definira presečišče med obema danima obsegoma, ali nič. V bistvu morate ciljno celico metati proti metodi Intersect, da preverite vrednost Nič. Na tej točki se lahko odločite, ali želite shraniti delovni zvezek.
Zasebni pod delovni list_Change(ByVal Target As Range)
1. korak: Ali se spremenjeni obseg seka?
Če je Intersect(Target, Range("C5:C16")) ni nič potem
2. korak: Če križišča ni, zapustite postopek
Izhod Sub
3. korak: Če je križišče, shranite delovni zvezek
Drugače
ActiveWorkbook.Save
4. korak: Zaprite stavek If
Konec Če
Končni sub
V 1. koraku preprosto preverite, ali je ciljna celica (celica, ki se je spremenila) v obsegu, ki ga določa metoda Intersect. Vrednost Nič pomeni, da je ciljna celica zunaj določenega obsega.
2. korak prisili makro, da se ustavi in zapusti postopek, če ni preseka med ciljno celico in navedenim obsegom.
Če je križišče, korak 3 sproži metodo Save aktivnega delovnega zvezka in prepiše prejšnjo različico.
V 4. koraku preprosto zaprete stavek If. Vsakič, ko začnete preverjanje If-Then-Else, ga morate zapreti z ustreznim End If.
Kako uporabljati makro
Za implementacijo tega makra ga morate kopirati in prilepiti v okno kode dogodka Worksheet_Change. Če tukaj postavite makro, se lahko zažene vsakič, ko naredite kakršno koli spremembo na listu:
Aktivirajte urejevalnik Visual Basic s pritiskom na Alt+F11.
V oknu projekta poiščite ime svojega projekta/delovnega zvezka in kliknite znak plus poleg njega, da si ogledate vse liste.
Kliknite list, s katerega želite sprožiti kodo.
Na spustnem seznamu Dogodek izberite dogodek Spremeni.
V novo ustvarjeni modul vnesite ali prilepite kodo in spremenite naslov obsega, da bo ustrezal vašim potrebam.
Vnesite svojo kodo v dogodek Spremeni delovni list.