Мне немного сложно объяснить, поэтому, пожалуйста, со мной, если хотите.Есть ли способ для временного файла Excel Add-on, чтобы узнать, обновлен ли он общедоступный файл только для чтения, так как конечный пользователь открыл Excel?
У меня есть надстройка Excel (.xlam
) Я создал для своего отдела на работе. Я его настроить так:
Существует общественный (Read-Only) версия Add-On на общем сетевом диске компании. Это файл, который все сотрудники отдела установили на своих компьютерах.
Для обеспечения правильной установки открытой версии на компьютерах сотрудников (не сохраняемых локально в папке Add-On пользователя) я создал vbscript, который автоматически устанавливает его для всех пользователей правильным способом, что позволяет мне должным образом и без усилий обновить дополнение в будущем.
У меня есть версия для разработки надстройки, установленная и сохраненная локально на моем компьютере, в которой я могу вносить изменения и проверять обновления перед их развертыванием в общедоступную версию на общем сетевом диске.
Когда я готов развернуть обновление, у меня есть Sub, который отключает атрибут «Только для чтения» общедоступного файла, перезаписывает файл с копией версии разработки (сам), затем включает Read- Возвращается только атрибут для вновь обновленного общедоступного файла.
# 4 Может быть сделано независимо от того, любой пользователь в данный момент используется Add-On в то время я обновляю, поскольку общественный файл только для чтения. Будучи только для чтения, когда пользователь открывает экземпляр Excel, то, что они фактически используют, является его собственной временной копией общедоступного файла, который сохраняется в их временной папке.
Единственная ошибка для этого метода для меня - это когда мне нужно установить исправление в середине дня. Если у пользователя уже открыт Excel при развертывании исправления, им необходимо перезагрузить Excel, чтобы обновить версию. Это означает, что нужно отправить сообщение электронной почты и зависит от пользователей, которые видят электронное письмо, чтобы знать, что они должны перезапустить Excel, чтобы изменения вступили в силу. Я бы предпочел, чтобы проверка надстройки была обновлена, и предупредил пользователя через MsgBox
, в котором будет указано, что они должны перезапустить Excel. У меня есть идея, как это сделать, но я не уверен, что он будет работать по назначению.
Теперь по моему вопросу.
Есть ли способ для меня, чтобы иметь чек Add-On, чтобы увидеть, если это самая последняя версия, сравнив дата последнего изменения этого пользователя TEMP Копировать и общественности надстройку-х Дата последнего изменения или будет у них обоих одинаковая дата?
Я знаю, что мне нужно будет использовать OnTime
, чтобы запланировать обычные проверки, но я не уверен, что если посмотреть на эти две даты, это будет точно.
Если это не сработает, как еще я могу проверить, использует ли пользователь обновленную версию?
Это (сравнение даты последнего изменения), кажется, как-то можно было довольно легко проверить? –
Да, вы правы. Я смог выполнить это, сохранив исходную последнюю обновленную дату до общедоступной переменной, когда экземпляр Excel открывается первым. Затем я использовал метод OnTime, чтобы проверять эту дату на текущее значение Last Date Modified для публичного добавления каждую минуту. Если доступно обновление, я просто отключу все кнопки на ленте и изменим изображение фиктивной кнопки с отметки на восклицательный знак с текстом «Пожалуйста, обновите». Это заставляет пользователей перезагружаться только в том случае, если они хотят использовать кнопки, входящие в состав надстройки. Я полагаю, что это меньше – CaffeinatedCoder
Intrusive и не заставляет их перезапускаться. – CaffeinatedCoder