Excel VBA Добавить справочную библиотеку без закрытия графического интерфейса пользователя

У меня есть сценарий (см. Ниже), который загружает справочную библиотеку, а затем представляет пользователю графический интерфейс (Userform). Проблема в том, что после загрузки библиотеки он завершает скрипт. Не сразу после команды (например, при сбое), а после ее завершения. В этом случае это означает, что графический интерфейс не отображается; однако при повторном запуске сценария (когда ему не нужно загружать справочную библиотеку, потому что она уже загружена) графический интерфейс отображается нормально.
Я не хочу вручную запускать этот сценарий дважды каждый раз, когда я его использую, кроме того, я не могу настроить свою систему на запоминание этой справочной библиотеки, есть много компьютеров, на которых выполняется этот сценарий.
Есть ли способ:

  1. подавление этого поведения завершения скрипта при загрузке библиотеки

  2. заставляет скрипт автоматически вызывать себя снова после того, как он завершит выполнение один раз

            Sub AddReference()
    'Add a reference library to the project using the GUID
    Dim strGUID As String, theRef As Variant, i As Long
    On Error Resume Next
    
    strGUID = "{0002E157-0000-0000-C000-000000000046}"  'GUID for VBA Extensibility 5.3
    
    'Remove any missing references
    For i = ThisWorkbook.VBProject.References.Count To 1 Step -1
        Set theRef = ThisWorkbook.VBProject.References.Item(i)
        If theRef.isbroken = True Then
            ThisWorkbook.VBProject.References.Remove theRef
        End If
    Next i
    Err.Clear
    
    'ThisWorkbook.VBProject.References.AddFromGuid GUID:=strGUID, Major:=1, Minor:=0
    ThisWorkbook.VBProject.References.AddFromFile "C:\Program Files\Common Files\microsoft shared\VBA\VBA6\VBE6EXT.OLB"
    
    Select Case Err.Number
    Case Is = 32813
         'Reference already in use
    Case Is = vbNullString
         'Reference added without issue  
    Case Else
         'An unknown error was encountered, so alert the user
         MsgBox "A problem occurred while loading the reference library!"
         End
    End Select
    On Error GoTo 0
    
    MyGUI.Show
    
    End Sub
    

0 ответов

Другие вопросы по тегам