Saatat käsitellä Excelissä tietoja, jotka ovat niin herkkiä, että haluat tallentaa aina, kun tiettyä solua tai solualuetta muutetaan. Tämän makron avulla voit määrittää solualueen, joka muutettuna pakottaa työkirjan tallentamaan.
Esitetyssä esimerkissä haluat työkirjan tallentavan, kun johonkin alueen C5:C16 soluun tehdään muokkaus.
Solun muuttaminen C5:C16:ssa pakottaa työkirjan tallentamaan.
Kuinka makro toimii
Tämän koodin salaisuus on Intersect-menetelmä. Koska et halua tallentaa laskentataulukkoa, kun vanhat solut muuttuvat, käytät Intersect-menetelmää määrittääksesi, leikkaako kohdesolu (muuttunut solu) liipaisualueeksi määritetyn alueen kanssa (tässä tapauksessa C5:C16). .
Intersect-metodi palauttaa yhden kahdesta asiasta: Range-objektin, joka määrittää kahden annetun alueen välisen leikkauspisteen, tai ei mitään. Joten pohjimmiltaan sinun täytyy heittää kohdesolu Intersect-menetelmää vasten tarkistaaksesi arvon Nothing. Tässä vaiheessa voit päättää, tallennetaanko työkirja.
Private Sub Worksheet_Change (ByVal Target as Range)
'Vaihe 1: Leikkaako muutettu alue?
Jos Leikkaus(kohde, alue("C5:C16")) ei ole mitään sitten
'Vaihe 2: Jos risteystä ei ole, poistu menettelystä
Poistu Subista
'Vaihe 3: Jos on risteys, tallenna työkirja
Muu
ActiveWorkbook.Save
Vaihe 4: Sulje If-lauseke
Loppu Jos
Lopeta ala
Vaiheessa 1 sinun tarvitsee vain tarkistaa, onko kohdesolu (muuttunut solu) Intersect-menetelmän määrittämän alueen sisällä. Arvo Nothing tarkoittaa, että kohdesolu on määritetyn alueen ulkopuolella.
Vaihe 2 pakottaa makron pysähtymään ja poistumaan proseduurista, jos kohdesolun ja määritetyn alueen välillä ei ole leikkauskohtaa.
Jos risteys on olemassa, vaihe 3 käynnistää aktiivisen työkirjan Tallenna-menetelmän ja korvaa edellisen version.
Vaiheessa 4 suljet vain If-lausekkeen. Joka kerta kun aloitat If-Then-Else -tarkistuksen, sinun on suljettava se vastaavalla End If -merkillä.
Kuinka käyttää makroa
Jos haluat ottaa tämän makron käyttöön, sinun on kopioitava ja liitettävä se Worksheet_Change-tapahtumakoodi-ikkunaan. Kun sijoitat makron tähän, se käynnistyy aina, kun teet muutoksia taulukkoon:
Aktivoi Visual Basic Editor painamalla Alt+F11.
Etsi projektiikkunasta projektin/työkirjan nimi ja napsauta sen vieressä olevaa plusmerkkiä nähdäksesi kaikki taulukot.
Napsauta taulukkoa, josta haluat käynnistää koodin.
Valitse avattavasta Tapahtuma-luettelosta Muuta tapahtumaa.
Kirjoita tai liitä koodi äskettäin luotuun moduuliin ja muuta alueen osoite tarpeidesi mukaan.
Kirjoita koodisi Työarkin muutos -tapahtumaan.