I Excel jobber du kanskje med data som er så sensitive at du vil lagre hver gang en bestemt celle eller celleområde endres. Denne makroen lar deg definere et celleområde som, når det endres, tvinger arbeidsboken til å lagre.
I eksemplet som vises, vil du at arbeidsboken skal lagres når det gjøres en redigering av noen av cellene i området C5:C16.
Endring av en celle i C5:C16 tvinger arbeidsboken til å lagre.
Hvordan makroen fungerer
Hemmeligheten bak denne koden er Intersect-metoden. Fordi du ikke vil lagre regnearket når en gammel celle endres, bruker du Intersect-metoden for å finne ut om målcellen (cellen som endret seg) krysser området som er spesifisert som triggerområdet (C5:C16 i dette tilfellet) .
Intersect-metoden returnerer én av to ting: et Range-objekt som definerer skjæringspunktet mellom de to gitte områdene, eller ingenting. Så i hovedsak må du kaste målcellen mot Intersect-metoden for å se etter en verdi på Ingenting. På det tidspunktet kan du bestemme om du vil lagre arbeidsboken.
Private Sub Worksheet_Change(ByVal Target As Range)
'Trinn 1: Skjærer den endrede rekkevidden seg?
Hvis Intersect(Target, Range("C5:C16")) er ingenting da
'Trinn 2: Hvis det ikke er noe veikryss, gå ut av prosedyren
Avslutt Sub
'Trinn 3: Hvis det er et veikryss, lagre arbeidsboken
Ellers
ActiveWorkbook.Save
'Trinn 4: Lukk If-setningen
Slutt om
End Sub
I trinn 1 sjekker du ganske enkelt for å se om målcellen (cellen som har endret seg) er i området spesifisert av Intersect-metoden. En verdi på Ingenting betyr at målcellen er utenfor det angitte området.
Trinn 2 tvinger makroen til å stoppe og avslutte prosedyren hvis det ikke er noe skjæringspunkt mellom målcellen og det spesifiserte området.
Hvis det er et kryss, utløser trinn 3 Lagre-metoden for den aktive arbeidsboken, og overskriver den forrige versjonen.
I trinn 4 lukker du bare If-setningen. Hver gang du starter en If-Then-Else-sjekk, må du lukke den med en tilsvarende End If.
Hvordan bruke makroen
For å implementere denne makroen må du kopiere og lime den inn i vinduet Worksheet_Change-hendelseskode. Ved å plassere makroen her kan den kjøres hver gang du gjør endringer i arket:
Aktiver Visual Basic Editor ved å trykke Alt+F11.
I prosjektvinduet finner du navnet på prosjektet/arbeidsboken og klikker på plusstegnet ved siden av for å se alle arkene.
Klikk på arket du vil utløse koden fra.
I rullegardinlisten Hendelse velger du Endre hendelse.
Skriv eller lim inn koden i den nyopprettede modulen, og endre rekkeviddeadressen for å passe dine behov.
Skriv inn koden din i endringshendelsen for regneark.