Nogle gange vil du måske slette alt undtagen det aktive regneark i en Excel-projektmappe. I disse situationer kan du bruge følgende makro.
Sådan fungerer makroen
Makroen her går gennem regnearkene og matcher hvert regnearks navn med det aktive arks navn. Hver gang makroen går i løkker, sletter den ethvert uovertruffent regneark. Bemærk brugen af egenskaben DisplayAlerts i trin 4. Dette slår effektivt Excels advarsler fra, så du ikke behøver at bekræfte hver sletning.
Undermakro1()
Trin 1: Erklær dine variabler
Dim ws As Arbejdsark
Trin 2: Begynd at gennemgå alle arbejdsark
For hver ws In ThisWorkbook.Worksheets
Trin 3: Kontroller hvert regnearks navn
Hvis ws.Name <> ThisWorkbook.ActiveSheet.Name Så
'Trin 4: Sluk advarsler og slet
Application.DisplayAlerts = Falsk
ws.Slet
Application.DisplayAlerts = Sand
Afslut Hvis
Trin 5: Gå videre til næste regneark
Næste ws
Slut Sub
Makroen erklærer først et objekt kaldet ws. Dette trin opretter en hukommelsesbeholder for hvert regneark, det går igennem.
I trin 2 begynder makroen at gå i loop og fortæller Excel, at den vil evaluere alle regneark i denne projektmappe. Der er forskel på ThisWorkbook og ActiveWorkbook. ThisWorkBook-objektet henviser til den projektmappe, der indeholder koden. ActiveWorkBook-objektet henviser til den aktuelt aktive projektmappe. De returnerer ofte det samme objekt, men hvis projektmappen, der kører koden, ikke er den aktive projektmappe, returnerer de forskellige objekter. I dette tilfælde vil du ikke risikere at slette ark i andre projektmapper, så du bruger ThisWorkBook.
I trin 3 sammenligner makroen simpelthen navnet på det aktive ark med det ark, der i øjeblikket bliver sløjfet.
I trin 4, hvis arknavnene er forskellige, sletter makroen arket. Som nævnt bruger du DisplayAlerts til at undertrykke enhver bekræftelseskontrol fra Excel. Hvis du ønsker at blive advaret, før du sletter arkene, kan du udelade Application. DisplayAlerts = Falsk. Udeladelse af DisplayAlerts-erklæringen vil sikre, at du får vist meddelelsen, så du kan trække dig tilbage fra beslutningen om at slette regneark.
I trin 5 går makroen tilbage for at få det næste ark. Når alle arkene er evalueret, slutter makroen.
Udelad DisplayAlerts-erklæringen for at se advarselsmeddelelser.
Sådan bruger du makroen
For at implementere denne makro kan du kopiere og indsætte den i et standardmodul:
Aktiver Visual Basic Editor ved at trykke på Alt+F11.
Højreklik på projektets/projektmappens navn i projektvinduet.
Vælg Indsæt → Modul.
Indtast eller indsæt koden i det nyoprettede modul.
Når du bruger ThisWorkbook i stedet for ActiveWorkbook i en makro, kan du ikke køre makroen fra den personlige makroprojektmappe. Hvorfor? Fordi ThisWorkbook vil referere til den personlige makroprojektmappe, ikke til den projektmappe, som makroen skal gælde for.