Я создал пользовательскую надстройку Excel, и в настоящее время я пытаюсь выяснить способ запроса пользователей через VBA, когда доступны новые версии надстройки.Application.OnTime in Add-In Workbook_Open
Я попытался просто использовать событие workbook_open, чтобы проверить последнюю версию, а затем запросить у пользователя пользовательскую форму, но я обнаружил, что когда Excel загружает надстройку, которая запускает пользовательскую форму, Excel перестает загружать книгу, на самом деле пользователь пытался открыть и перезагрузить надстройку. Поэтому, пока пользовательская форма работает так, как я хотел, пользователь получает пустое (без чтения) оболочку Excel с загруженной надстройкой.
Таким образом, я рассмотрел возможность использования Application.OnTime
для отсрочки VBA до тех пор, пока файлы надстройки и цели не будут открыты. У меня сложилось впечатление, что и here, и here, что это возможно, но я могу сделать это только в файле .xlsm
, а не в файле .xlam
.
Вот код, я тестирую с:
Sub Workbook_Open()
Application.OnTime Now() + TimeValue("00:00:05"), "Test_Addin.xlam!Versioning.Notify_User"
End Sub
И в очередной код модуля:
Sub Notify_User()
MsgBox "Hello"
End Sub
Итак, мой вопрос: ли я делаю что-то здесь не так?
Мне интересно, есть ли что-то о том, как надстройка загружена/спроектирована, что не позволяет этому типу действий выполнять.
В качестве альтернативы, существует ли другой способ сделать это, о котором вы можете думать?
Я прочитал interesting blog post (и комментарии) от Dick Kusleika по этой теме, но это звучало так, как будто некоторые люди проверяли версию каждой процедуры. У меня много процедур, поэтому это не звучит как хорошая альтернатива, хотя мне, возможно, придется прибегнуть к ней.
Вот несколько иной подход, который может представлять интерес: http://www.excelguru.ca/content.php?152-Deploying-Add-ins-in-a-Network-Environment –
@DougGlancy Интригующая концепция. К сожалению, мои пользователи не всегда в сети, а некоторые из них имеют медленные сетевые подключения, поэтому это решение не совсем соответствует требованиям бизнеса. :/ – ARich
@DougGlancy Я заметил ваш комментарий к сообщению в блоге Дика.Вы все еще используете FlyBar? Как вы загрузили новые версии добавления с сервера? – ARich