Hoe de Excel Save Notification uit te schakelen

Wanneer u Excel-functies met macro's automatiseert met Visual Basic for Applications, weet Excel niet dat een macro de uitvoering bestuurt en gebruikersmeldingen en -aanwijzingen blijft genereren. Er zijn verschillende manieren om de notificaties van Excel uit te schakelen wanneer u een werkmap opslaat en de macro te laten beslissen of wijzigingen die de gebruiker of de macro in de werkmap heeft gemaakt, behouden of genegeerd worden.

Maak een macro

1.

Start Excel. Kies "Bestand" en vervolgens "Opties". Selecteer 'Lint aanpassen' en klik op het vakje om een ​​vinkje te plaatsen naast de optie 'Ontwikkelaar' in de lijst met tabbladen aan de rechterkant onder Hoofdtabbladen, als het vakje nog niet is aangevinkt. Selecteer "OK" om uw wijzigingen op te slaan.

2.

Kies "Ontwikkelaar" in het menu en selecteer "Macro's". Typ een naam voor uw macro en kies "Maken" om de VBA-editor te openen.

3.

Typ de code voor uw macro in de subroutine-omtrek die in de editor is opgegeven. Roep de Shutdown-subroutine aan en geef True door om wijzigingen in de werkmap op te slaan of False om wijzigingen in de werkmap te negeren. Roep de subroutine CloseAndDiscard op om de werkmap te sluiten en wijzigingen te negeren. Typ bijvoorbeeld: "Shutdown (True)", "Shutdown (False)" of "CloseAndDiscard ()" (zonder aanhalingstekens).

Maak Shutdown () of CloseAndDiscard () Subroutine

1.

Maak een VBA-subroutine die een vlag accepteert die aangeeft of wijzigingen moeten worden opgeslagen. Stel de werkmapeigenschap in op "Opgeslagen" alsof u het bestand zojuist hebt opgeslagen en sluit vervolgens de werkmap om wijzigingen te annuleren zonder gebruikersprompts of -meldingen. Sla anders wijzigingen op en sluit de werkmap. Bijvoorbeeld:

Sub Shutdown (ShouldSave As Boolean) If ShouldSave = True Dan 'save the changes If ThisWorkbook.Saved = False Then' only save if changes ThisWorkbook.Save 'save the file without a user prompt End If Else ThisWorkbook.Saved = True' vertel Excel dat we het bestand hebben opgeslagen om de wijzigingen te verwijderen Einde Als

ActiveWorkbook.Close 'sluit het bestand End Sub

2.

Verwerp wijzigingen die in een werkmap zijn aangebracht wanneer u deze sluit door alle systeemwaarschuwingen uit te schakelen, het bestand te sluiten en waarschuwingen opnieuw in te schakelen. Bijvoorbeeld:

Sub CloseAndDiscard () Application.DisplayAlerts = False ActiveWorkbook.Close 'geen gebruikersaanwijzing = wijzigingen negeren Application.DisplayAlerts = True End Sub

3.

Stel de parameter "SaveChanges" in op "True" bij het aanroepen van de ActiveWorkbook-methode Close om wijzigingen automatisch op te slaan zonder de gebruiker te vragen. Stel de parameter in op "False" om wijzigingen automatisch te verwijderen zonder de gebruiker hierom te vragen. Bijvoorbeeld:

Sub ShutDown (ShouldSave As Boolean) ActiveWorkbook.Sluit SaveChanges: = Should Surking End Sub

Sla op als werkmap met macro-functie

1.

Selecteer "Bestand" en "Sluiten en terugkeren naar Microsoft Excel" nadat u uw macro's en bijbehorende subroutines hebt gemaakt.

2.

Selecteer "Ontwikkelaar" in het menu, kies "Macro's", markeer uw macro en selecteer "Uitvoeren" om uit te voeren en te testen.

3.

Selecteer "Bestand" in het menu, kies "Opslaan als ..." en wijzig het Opslaan als type in "Excel Macro-Enabled werkmap (* .xlsm)." Typ een bestandsnaam en kies "Opslaan" om de werkmap met de macro op te slaan.

Tips

  • Wanneer u "SaveChanges" instelt op "True", moet u ervoor zorgen dat aan de werkmap een bestandsnaam is gekoppeld om een ​​extra gebruikersprompt te voorkomen. Bijvoorbeeld:
  • ActiveWorkbook.Sluit SaveChanges: = True, Bestandsnaam: = "myworkbook.xlsx"

Waarschuwing

  • Het instellen van Application.DisplayAlerts to False onderdrukt alle waarschuwingen, niet alleen de dialoogvensters Opslaan. Schakel meldingen uit onmiddellijk voor de taak die een waarschuwing kan genereren en meld waarschuwingen weer zodra u klaar bent met de taak, om te voorkomen dat belangrijke systeemberichten worden onderdrukt.

Aanbevolen