У меня есть надстройка Excel 2003, развернутая в одном из наших отделов, которая иногда нуждается в обновлении. В настоящее время происходит то, что я публикую новую версию со своего компьютера в центральном расположении, при этом обновляется номер версии, хранящийся в базе данных, который надстройка проверяет каждый раз при запуске любого из модулей в ней, и если более новый номер версии затем надстройка останавливается с сообщением, информирующим пользователя о необходимости обновления надстройки.
В настоящее время они используют другую книгу с событием workbook_open
, которое меняет надстройку.
Мне хотелось бы, чтобы надстройка обнаружила, что доступна более новая версия, и тихо установила ее, прежде чем продолжить работу пользователя. Проблема заключается в том, что это не удается на первом шаге удаления существующей версии, поскольку любой код в надстройке немедленно завершается, когда надстройка удаляется.
Я бы на лету создал некоторый код в персональном файле user.xls для обработки перехода, но я не могу установить флаг «Доверительный доступ к проекту Visual Basic» на компьютерах пользователей, поэтому не могу реплицировать код в надстройке.
Единственный способ увидеть отсюда, это иметь две надстройки: одну, которая обрабатывает обновления, и другую, которая фактически выполняет эту работу. Проблема возникает, когда мне неизбежно приходится обновлять надстройку обновления!
Может кто-нибудь еще предложить лучшее решение? Это должен быть 100% Excel, не VSTO и т. Д.