Обновление дилеммы VBA Excel AddIn - PullRequest
0 голосов
/ 20 ноября 2018

Я делаю пользовательское приложение, которому нужен AddIn, который я хочу обновить в событии workbook_open.

Вот мой план:

  • Добавить ссылку на «Microsoft Visual Basic для расширяемости приложений 5.3»
  • Удалить Ссылка на старый AddIn
  • Удалитьстарый AddIn, если существует
  • Копировать AddIn из другой папки
  • Добавить ссылку на новый AddIn

Это должно быть сделано все время, пока vbProject защищен паролем и скрыт.Вот мой код:

Private Sub Workbook_Open()
Dim wb As Workbook

Set wb = Thisworkbook

'
If common_DB.AddFSOref(wb) Then Debug.Print "Added Extensibility"
If common_DB.AddRegEx(wb) Then Debug.Print "Added Regular Expressions"

UpdateDBAddin
End Sub

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

Public Sub UpdateDBAddin()
Dim UserPath As String
Dim AI As AddIn
Dim AddinSourcePath As String
Dim AddinName As String
Dim Addintitle As String
Dim RefName As String
Dim ref As Reference

RefName = "Ex_Ample_Name"
AddinName = "ExampleName.xlam"
Addintitle = "Example AddIn"
UserPath = Application.UserLibraryPath
AddinSourcePath = "E:\Xample\Path\"
Application.DisplayAlerts = False

For Each ref In Thisworkbook.VBProject.References
    If ref.Name = RefName Then
    Thisworkbook.VBProject.References.remove ref
    End If
Next ref

If Application.AddIns(Addintitle).IsOpen Then
    Workbooks(AddinName).Close False
End If

If common_DB.IsFile(UserPath & "\" & AddinName) Then
    Application.AddIns(Addintitle).Installed = False
    Kill (UserPath & "\" & AddinName)
End If

Application.AddIns.Add (AddinSourcePath & AddinName)
Application.AddIns(Addintitle).Installed = True
Application.DisplayAlerts = True

' Here the VBProject Password is requested from the user, I want to suppress that
Thisworkbook.VBProject.References.AddFromFile (UserPath & "\" & AddinName)

End Sub

Вопрос: Как мне подавить пароль, когда я хочу добавить новую ссылку на мой Vbproject?

EDIT1: Дилемма, потому что это происходит только тогда, когда проект скрыт, и я не могу «отладить» в режиме удержания.Я сузил проблему до добавления ссылки на надстройку в последней строке UpdateAddin.

EDIT2: Это немного странно.Если вы просто отмените запрос пароля, он будет работать нормально.Так что ссылка добавляется.Не имеет значения, введете ли вы пароль или просто отмените его, строка будет выполнена.

...