Come sopprimere i prompt dei comandi "Salva modifiche" quando si chiude una cartella di lavoro in Excel


Riepilogo


In Microsoft Excel, è possibile creare un Visual Basic, Applications Edition di Microsoft macro VBA () che elimina la richiesta di "Salvare le modifiche" quando si chiude una cartella di lavoro. È possibile eseguire questa operazione specificando lo stato della proprietà di salvataggio della cartella di lavoro o all'eliminazione di tutti gli avvisi per la cartella di lavoro.

Ulteriori informazioni


Microsoft fornisce esempi di programmazione illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, ma non limitato a, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che si abbia familiarità con il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire la procedura di debug. Tecnici del supporto Microsoft consentono di spiegare la funzionalità di una particolare procedura. Tuttavia, essi non modificherà questi esempi per fornire funzionalità aggiuntive o creare procedure atte a soddisfare specifiche esigenze. Per utilizzare uno degli esempi seguenti, attenersi alla seguente procedura:
  1. Avviare Excel e aprire una nuova cartella di lavoro.
  2. Premere ALT + F11 per avviare l'editor di Visual Basic.
  3. Scegliere modulodal menu Inserisci .
  4. Digitare il codice di macro di esempio nel foglio del modulo.
  5. Premere ALT + F11 per tornare a Excel.
  6. In Microsoft Office Excel 2003 e nelle versioni precedenti di Excel, scegliere Macro dal menu Strumenti e quindi fare clic su macro. In Microsoft Office Excel 2007, fare clic su macro nel gruppo codice dellascheda sviluppatore se la scheda sviluppo non è disponibile, effettuare quanto segue:
    1. Fare clic sul pulsante Microsoft Office, quindi su Opzioni di Excel.
    2. Nella categoria Impostazioni generali , in Opzioni principali per l'utilizzo di Excel, fare clic per selezionare la casella di controllo Mostra scheda Sviluppo sulla barra multifunzione e quindi fare clic su OK.
  7. Selezionare la macro desiderata e quindi fare clic su Esegui.
La proprietà Saved restituisce il valore False se sono state apportate modifiche alla cartella di lavoro dopo l'ultimo salvataggio. È possibile utilizzare il nome della subroutine riservato "Auto_Close" per specificare una macro che deve essere eseguita ogni volta che una cartella di lavoro viene chiusa. In questo modo è possibile controllare la modalità di gestione del documento quando l'utente ha completato e ha richiesto la chiusura del documento di Excel.

Esempio 1: Chiudere la cartella di lavoro senza salvare le modifiche

Per imporre una cartella di lavoro per chiudere senza salvare le modifiche, digitare il seguente codice in un modulo di Visual Basic della cartella di lavoro:
Sub Auto_Close()    ThisWorkbook.Saved = TrueEnd Sub
Poiché la proprietà Saved è impostata su True, Excel risponde come se la cartella di lavoro è già stato salvato e non è stata modificata dall'ultima, che Salva. La proprietà DisplayAlerts del programma può essere utilizzata per lo stesso scopo. Ad esempio, la macro seguente disattiva DisplayAlerts , chiude la cartella di lavoro attivo senza salvare le modifiche e quindi attiva DisplayAlerts nuovamente.
Sub CloseBook()    Application.DisplayAlerts = False    ActiveWorkbook.Close    Application.DisplayAlerts = TrueEnd Sub
È anche possibile utilizzare l'argomento SaveChanges del metodo Close . In questa macro chiude la cartella di lavoro senza salvare le modifiche:
Sub CloseBook2()    ActiveWorkbook.Close savechanges:=FalseEnd Sub

Esempio 2: Chiudere la cartella di lavoro e salvare le modifiche

Per imporre a una cartella di lavoro di salvare le modifiche, digitare il seguente codice in un modulo di Visual Basic della cartella di lavoro:
Sub Auto_Close()    If ThisWorkbook.Saved = False Then        ThisWorkbook.Save    End IfEnd Sub
Questa subroutine verifica se la proprietà del file salvato è impostata su False. In tal caso, la cartella di lavoro è stato modificato dall'ultimo salvataggio e tali modifiche vengono salvate.