Как остановить Excel с запросом на повторное открытие книги ?

у меня есть только для чтения книги Excel, содержащей VBA-приложения. Приложение сохраняет все данные, которые должны быть сохранены в базе данных, а книга всегда закрыт без сохранения (по умолчанию ThisWorkbook.Saved = True в BeforeClose).

у меня следующая проблема:

  • Пользователь дважды щелкает на книгу в Windows Explorer, открыть книгу.

  • Пользователь дважды щелкает второй раз на книгу в Windows Explorer.

  • Excel предлагает: "MyWorkbook.xls уже открыт. Открытие вызовет какой-то внесенные изменения будут потеряны. Вы хотите открыть MyWorkbook.xls?"

  • Если пользователь нажимает на кнопку "да", книга вновь без выполнения BeforeClose обработчик событий экземпляр, который уже был открыт.

Это проблема в моем приложении, поскольку это означает, что некоторые важные код очистки в BeforeClose обработчика событий не казнят.

кто-нибудь Может предложить VBA решение. Что может быть:

  • Подавляя строке, чтобы открыть книгу. Вместо того, чтобы молча использовать уже открытый экземпляр.

  • как-То получить BeforeClose или другой обработчик событий для запуска в оригинальный экземпляр, прежде чем она закрыта, так что я могу выполнять свой код очистки.

Update:

Это Excel 2003.

я могу избавиться от нежелательных строки с помощью параметра "ThisWorkbook.Saved = True" в Workbook_SheetChanged обработчик событий (VBA-приложение отвечает за сохранение любых данных, которые должны быть сохранены в базе данных, так что я не заботится о том, Excel сохранения изменений).

Однако это не решает мою проблему: если я сделаю это, то двойной щелчок на Книгу в explorer молча подняв книгу, но до сих пор делает это без вызова "BeforeClose" обработчик события.

для того, чтобы перефразировать вопрос:

  • Есть в любом случае, с помощью VBA для обнаружения и перехвата книги будет открыт в этот путь?

Обновление 2

Принимая BKimmel ответ - это, кажется, нет VBA способ перехватить это событие в книге.

решение, которое я реализую будет двигаться в коде приложения в XLA надстройка, которая загружается автоматически (если он еще не загружен) при загрузке книги. Надстройки можно Открыть ручкой и BeforeClose событий, и хранить информацию, что ему нужно очистить.

Найдено 2 ответа:

How to stop Excel from prompting to reopen a workbook?

http://stackoverflow.com/questions/186963/how-to-stop-excel-from-prompting-to-reopen-a-workbook

Посмотреть решение →