Страницы: 1
RSS
Программное добавление объектной модели. Ошибка - Compile error: User-defined type not defined
 
Добрый день, уважаемы форумчане!
есть такой макрос, который предназначен для программного добавлении объектной модели, Он ругается на ошибку-Compile error:  User-defined type not defined

подскажите как можно как можно избежать эту ошибку.
заранее благодарю!
Код
Sub AddReference()
    Dim VBAEditor As VBIDE.VBE
    Dim vbProj As VBIDE.VBProject
    Dim chkRef As VBIDE.Reference
    Dim BoolExists As Boolean

    Set VBAEditor = Application.VBE
    Set vbProj = ActiveWorkbook.VBProject

    '~~> Check if "Microsoft VBScript Regular Expressions 5.5" is already added
    For Each chkRef In vbProj.References
        If chkRef.Name = "Microsoft Visual Basic for Applications Extensibility 5.3" Then
            BoolExists = True
            GoTo CleanUp
        End If
    Next

    vbProj.References.AddFromFile "C:\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"

CleanUp:
    If BoolExists = True Then
        MsgBox "Reference already exists"
    Else
        MsgBox "Reference Added Successfully"
    End If

    Set vbProj = Nothing
    Set VBAEditor = Nothing
End Sub
 
 
Поставить галку вот на этой нижней библиотеке: http://prntscr.com/sfwr7y
Она кстати прямо в тексте и упомянута.
Хотя вообще-то какой-то глупый код :)
Нужно убрать описание этих типов. Boolean можно оставить.
Изменено: Hugo - 13.05.2020 13:04:09
 
Самый простой способ = поставить галку, или использовать позднее связывание.
Но ежели скучно, то в этой теме, в тестерах, выложенных v__step, есть коды для подключения. Кажется, есть и похожий.
А это первый попавшийся
Код
Sub Make_VBS_Ref()        ' программное подключение Microsoft VBScript Regular Expression 5.5
    On Error Resume Next        'in case ref exists
    ActiveWorkbook.VBProject.References.AddFromGuid "{3F4DACA7-160D-11D2-A8E9-00104B365C9F}", 5, 5
End Sub


Вить, программное подключение Microsoft VBScript Regular Expression
Изменено: RAN - 13.05.2020 13:26:07
 
Я теперь даже и не знаю...
Добавление библиотек объектов в проект Visual Basic макросом - исправление недоработки разработчика :)
Потому что чтобы эти типы опознавались - именно эта библиотека уже должна быть добавлена в проект до выполнения кода. Явно кто-то переделывал код, там и хвост торчит.
И кстати у меня с Name не работает, у меня Description. И хвост почистил.

Скрытый текст
 
спасибо, я разобрался !
Код
    Dim VBAEditor As Object
    Dim vbProj As Object
    Dim chkRef As Object
    Dim BoolExists As Boolean
........
 
Страницы: 1
Наверх