Noen ganger vil du kanskje slette alt unntatt det aktive regnearket i en Excel-arbeidsbok. I disse situasjonene kan du bruke følgende makro.
Hvordan makroen fungerer
Makroen her går gjennom regnearkene, og matcher hvert regnearknavn med navnet på det aktive arket. Hver gang makroen går i løkker, sletter den ethvert uovertruffent regneark. Legg merke til bruken av DisplayAlerts-egenskapen i trinn 4. Dette slår effektivt av Excels advarsler slik at du ikke trenger å bekrefte hver sletting.
Sub Makro1()
'Trinn 1: Deklarer variablene dine
Dim ws As Worksheet
'Trinn 2: Begynn å gå gjennom alle regnearkene
For hver ws In This Workbook.Worksheets
'Trinn 3: Sjekk navnene på hvert regneark
Hvis ws.Name <> ThisWorkbook.ActiveSheet.Name Then
'Trinn 4: Slå av advarsler og slett
Application.DisplayAlerts = False
ws.Slett
Application.DisplayAlerts = Sant
Slutt om
'Trinn 5: Gå til neste regneark
Neste ws
End Sub
Makroen erklærer først et objekt kalt ws. Dette trinnet oppretter en minnebeholder for hvert regneark det går gjennom.
I trinn 2 begynner makroen å gå i løkke, og forteller Excel at den vil evaluere alle regnearkene i denne arbeidsboken. Det er forskjell på ThisWorkbook og ActiveWorkbook. ThisWorkBook-objektet refererer til arbeidsboken som inneholder koden. ActiveWorkBook-objektet refererer til den aktive arbeidsboken. De returnerer ofte det samme objektet, men hvis arbeidsboken som kjører koden ikke er den aktive arbeidsboken, returnerer de forskjellige objekter. I dette tilfellet vil du ikke risikere å slette ark i andre arbeidsbøker, så du bruker ThisWorkBook.
I trinn 3 sammenligner makroen ganske enkelt navnet på det aktive arket med arket som for øyeblikket sløyfes.
I trinn 4, hvis arknavnene er forskjellige, sletter makroen arket. Som nevnt bruker du DisplayAlerts for å undertrykke eventuelle bekreftelsessjekker fra Excel. Hvis du ønsker å bli advart før du sletter arkene, kan du utelate Application. DisplayAlerts = False. Å utelate DisplayAlerts-erklæringen vil sikre at du får meldingen vist, slik at du kan gå tilbake fra beslutningen om å slette regneark.
I trinn 5 går makroen tilbake for å få neste ark. Etter at alle arkene er evaluert, avsluttes makroen.
Utelat DisplayAlerts-setningen for å se advarselsmeldinger.
Hvordan bruke makroen
For å implementere denne makroen kan du kopiere og lime den inn i en standardmodul:
Aktiver Visual Basic Editor ved å trykke Alt+F11.
Høyreklikk navnet på prosjektet/arbeidsboken i prosjektvinduet.
Velg Sett inn → Modul.
Skriv eller lim inn koden i den nyopprettede modulen.
Når du bruker ThisWorkbook i stedet for ActiveWorkbook i en makro, kan du ikke kjøre makroen fra den personlige makroarbeidsboken. Hvorfor? Fordi ThisWorkbook vil referere til den personlige makroarbeidsboken, ikke til arbeidsboken som makroen skal gjelde for.