I Excel arbejder du muligvis med data, der er så følsomme, at du vil gemme hver gang en bestemt celle eller celleområde ændres. Denne makro giver dig mulighed for at definere en række celler, der, når de ændres, tvinger projektmappen til at gemme.
I det viste eksempel vil du have, at projektmappen skal gemme, når der foretages en redigering af en af cellerne i området C5:C16.
Ændring af en celle i C5:C16 tvinger projektmappen til at gemme.
Sådan fungerer makroen
Hemmeligheden bag denne kode er Intersect-metoden. Fordi du ikke ønsker at gemme regnearket, når en gammel celle ændres, bruger du Intersect-metoden til at bestemme, om målcellen (den celle, der ændrede sig) skærer det interval, der er angivet som triggerområdet (C5:C16 i dette tilfælde) .
Intersect-metoden returnerer én af to ting: et Range-objekt, der definerer skæringspunktet mellem de to givne områder, eller ingenting. Så i det væsentlige skal du kaste målcellen mod Intersect-metoden for at tjekke for en værdi på ingenting. På det tidspunkt kan du beslutte, om du vil gemme projektmappen.
Private Sub Worksheet_Change(ByVal Target As Range)
'Trin 1: Skærer den ændrede rækkevidde?
Hvis Intersect(Target, Range("C5:C16")) Er Intet Så
Trin 2: Hvis der ikke er noget vejkryds, forlad proceduren
Afslut Sub
Trin 3: Hvis der er et vejkryds, skal du gemme projektmappen
Andet
ActiveWorkbook.Save
Trin 4: Luk If-erklæringen
Afslut Hvis
Slut Sub
I trin 1 tjekker du blot for at se, om målcellen (den celle, der har ændret sig) er inden for det område, der er angivet af Intersect-metoden. En værdi på Intet betyder, at målcellen er uden for det angivne interval.
Trin 2 tvinger makroen til at stoppe og afslutte proceduren, hvis der ikke er nogen skæring mellem målcellen og det specificerede område.
Hvis der er et kryds, udløser trin 3 den aktive projektmappes Gem-metode og overskriver den tidligere version.
I trin 4 lukker du blot If-sætningen. Hver gang du starter et If-Then-Else-tjek, skal du lukke det ud med et tilsvarende End If.
Sådan bruger du makroen
For at implementere denne makro skal du kopiere og indsætte den i vinduet Worksheet_Change-hændelseskode. Ved at placere makroen her kan den køre, hver gang du foretager en ændring i arket:
Aktiver Visual Basic Editor ved at trykke på Alt+F11.
Find dit projekt-/projektmappenavn i projektvinduet og klik på plustegnet ved siden af det for at se alle arkene.
Klik på det ark, hvorfra du vil udløse koden.
På rullelisten Hændelse skal du vælge Skift hændelse.
Indtast eller indsæt koden i det nyoprettede modul, og skift rækkevidden, så den passer til dine behov.
Indtast din kode i hændelsen Worksheet Change.