Я использую базу данных SQL [Edit] только для чтения (от третьего лица!) [/ Edit], xlsm, xls (сохраненную копию xlsm, только без макросов) и mdb (база данных Access).
Они связаны следующим образом:
- xlsm получает данные из базы данных SQL каждые 5 минут с помощью кода Application.OnTime, запускаемого в Workbook_Open.
- Затем xlsm сохраняет себя как 2003 xls.
Поскольку модули кода еще существуют в тот момент (рабочая книга еще не закрыта), я могу открыть mdb Access и обновить ссылку Excel на таблицу в данных 2003 года, а затем закрыть Access.
Затем я снова открываю xlsm, вызывая новый экземпляр Application.Ontime.
- Я наконец закрыл книгу xls 2003 года.
Эта последовательность запускается в рабочее время и при первом запуске после 17:00 устанавливает таймер для повторного запуска процесса утром.
Моя проблема заключается в том, что всякий раз, когда я открываю файл с подключением или ссылкой на xlsm, событие Workbook_Open, по-видимому, срабатывает, и в итоге я получаю файл 2003 xls, открытый на клиентских компьютерах. Я знаю, что это не просто оставшийся Application.OnTime на моем (ПК, на котором я изначально создавал файлы), потому что теперь он используется, и другие клиенты, которые никогда не открывали xlsm, получают случайный файл 2003, когда они используют Excel.
Если этого недостаточно, чтобы кто-то узнал, что происходит, я с удовольствием отправлю код - но я надеюсь, что кто-то видел это раньше или знает об этой ошибке новичка и может просто дать мне строку, по которой я скучаю.
Большое спасибо за вашу помощь!