Altro ciao tutti,Automazione di Excel: manca l'evento
Sto eseguendo l'automazione di Excel tramite Interop in C# e desidero essere informato quando una cartella di lavoro viene chiusa. Tuttavia, non esiste un evento Close sulla cartella di lavoro né un evento Quit sull'applicazione.
Qualcuno l'ha già fatto? Come posso scrivere un pezzo di codice che reagisce alla cartella di lavoro che viene chiusa (che viene eseguita solo se la cartella di lavoro è in realtà chiusa)? Idealmente dovrebbe succedere dopo chiudere la cartella di lavoro, quindi posso fare affidamento sul file per riflettere tutte le modifiche.
dettagli su quello che ho trovato finora:
c'è una() evento BeforeClose, ma se ci sono modifiche non salvate viene generato questo evento prima che l'utente viene chiesto se salvare loro, quindi al momento non posso elaborare l'evento, non ho il file finale e non posso rilasciare gli oggetti COM, entrambe le cose che ho bisogno di avere/fare. Non so nemmeno se la cartella di lavoro sarà effettivamente chiusa, poiché l'utente potrebbe scegliere di interrompere la chiusura.
Quindi c'è un evento BeforeSave(). Pertanto, se l'utente sceglie "Sì" per salvare le modifiche non salvate, BeforeSave() viene eseguito dopo BeforeClose(). Tuttavia, se l'utente sceglie di "Annullare", quindi fa clic su "File-> Salva", viene eseguito lo stesso ordine esatto degli eventi. Inoltre, se l'utente sceglie "No", il BeforeSave() non viene eseguito affatto. Lo stesso vale finché l'utente non fa clic su nessuna di queste opzioni.
Ciao Nelson - sì, l'ho già spiegato. Il problema è che "e BeforeSave() non è" la parte della tua proposta è semidecidibile. Se non viene chiamato, posso aspettare ma non decidere mai se questo significa che ha abortito, ha scelto di no, o semplicemente non ha ancora fatto clic su alcun pulsante. – chiccodoro