Еще привет всем,
Я делаю автоматизацию Excel через Interop в C # и хочу получать информацию, когда рабочая книга закрыта. Однако в книге нет события Close и события Quit в приложении.
Кто-нибудь делал это раньше? Как я могу написать кусок кода, который реагирует на закрытие рабочей книги (которая выполняется, только если рабочая книга действительно закрыта)? В идеале это должно произойти после закрытие книги, поэтому я могу рассчитывать на файл, чтобы отразить все изменения.
Подробности о том, что я нашел до сих пор:
Существует событие BeforeClose (), но если есть несохраненные изменения, это событие вызывается до того, как у пользователя спрашивают, сохранять ли его, поэтому в настоящий момент я могу обработать событие, у меня нет окончательного файла и Я не могу выпустить объекты COM, обе вещи, которые мне нужно иметь / делать. Я даже не знаю, будет ли книга на самом деле закрыта, поскольку пользователь может отменить закрытие.
Затем происходит событие BeforeSave (). Таким образом, если пользователь выбирает «Да» для сохранения несохраненных изменений, то BeforeSave () выполняется после BeforeClose (). Однако если пользователь выбирает «Abort», а затем нажимает «file-> save», выполняется точно такой же порядок событий. Кроме того, если пользователь выбирает «Нет», BeforeSave () вообще не выполняется. То же самое верно, пока пользователь не нажимает ни один из этих параметров.