Hur frågan ”spara ändringar” när du stänger en arbetsbok i Excel


Sammanfattning


Du kan skapa ett Microsoft Visual Basic for Applications (VBA)-makro som visas inte varningen ”spara ändringar” när du stänger en arbetsbok i Microsoft Excel. Du kan göra detta genom att ange status för egenskapen för den arbetsbok sparad eller utelämna alla aviseringar för arbetsboken.

Mer information


Microsoft tillhandahåller programmeringsexempel endast utan garanti varken uttryckliga eller underförstådda. Detta inkluderar men är inte begränsat till, underförstådda garantier om säljbarhet eller lämplighet för ett särskilt ändamål. Den här artikeln förutsätter att du är bekant med det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till att förklara funktionen hos en viss procedur. De kommer inte ändra dessa exempel för att ge ytterligare funktioner eller skapa procedurer som motsvarar dina speciella behov. Så här använder du något av följande exempel:
  1. Starta Excel och öppna en ny arbetsbok.
  2. Starta Visual Basic Editor genom att trycka på ALT+F11.
  3. Klicka på ModulInfoga-menyn.
  4. Skriv makrokoden provet modulbladet.
  5. Tryck på ALT+F11 för att återgå till Excel.
  6. I Microsoft Office Excel 2003 och tidigare versioner av Excel pekar du på makroVerktyg -menyn och klicka sedan på makron. Klicka på makron i gruppen kodfliken utvecklare om fliken utvecklare inte är tillgängligt i Microsoft Office Excel 2007, beakta följande:
    1. Klicka på Microsoft Office-knappenoch sedan på Excel-alternativ.
    2. I kategorin vanliga under de vanligaste alternativen när du arbetar med Excel, markerar du kryssrutan Visa fliken Utvecklare i menyfliksområdet .
  7. Markera makrot som du vill använda och klicka sedan på Kör.
Egenskapen sparad returnerar värdet Falskt om ändringar har gjorts i en arbetsbok eftersom den senast sparades. Du kan använda reserverade subrutin namnet ”Auto_Close” för att ange ett makro som ska köras när en arbetsbok stängs. Genom att göra detta kan du styra hur dokumentet ska hanteras när användaren är klar och har fått instruktioner att stänga dokumentet.

Exempel 1: Stänga arbetsboken utan att spara ändringar

Skriv följande kod i en Visual Basic-modul i arbetsboken om du vill tvinga en arbetsbok stängs utan att ändringarna sparas:
Sub Auto_Close()    ThisWorkbook.Saved = TrueEnd Sub
Eftersom den sparade egenskapen anges till True, svarar som om arbetsboken redan har sparats och inga ändringar har skett sedan du senast sparade i Excel. Egenskapen DisplayAlerts för programmet kan användas för samma ändamål. Till exempel följande makro inaktiverar DisplayAlerts stänger den aktiva arbetsboken utan att spara ändringarna och sedan aktiverar DisplayAlerts igen.
Sub CloseBook()    Application.DisplayAlerts = False    ActiveWorkbook.Close    Application.DisplayAlerts = TrueEnd Sub
Du kan också använda argumentet SaveChanges för metoden Close . Följande makro stänger arbetsboken utan att spara ändringarna:
Sub CloseBook2()    ActiveWorkbook.Close savechanges:=FalseEnd Sub

Exempel 2: Stänga arbetsboken och spara ändringarna

Skriv följande kod i en Visual Basic-modul i arbetsboken om du vill tvinga en arbetsbok om du vill spara ändringarna:
Sub Auto_Close()    If ThisWorkbook.Saved = False Then        ThisWorkbook.Save    End IfEnd Sub
Den här OnFilterComboChange kontrollerar om filens sparade egenskapen anges till False. I så fall arbetsboken har ändrats sedan den senast sparades och ändringarna sparas.