首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >excel中的后期绑定VBIDE.VBE

excel中的后期绑定VBIDE.VBE
EN

Stack Overflow用户
提问于 2015-04-17 01:29:18
回答 1查看 6.3K关注 0票数 10

是否有可能在VBIDE.VBE中延迟绑定该对象?例如:

代码语言:javascript
复制
Dim VBAEditor As VBIDE.VBE

取而代之的是类似于此(后期绑定)的内容:

代码语言:javascript
复制
Dim VBAEditor As Object: set VBAEditor = CreateObject ("VBIDE.VBE")

我的目标是避免手动进入“MicrosoftVisualBasicforApplicationExtenity5.3”引用的复选框中。

解决方案

使用下面的反馈,我能够以编程方式动态添加“MicrosoftVisualBasicforApplicationExtenity5.3”引用。解决办法如下:

代码语言:javascript
复制
Sub mainFunction()

    Call AddLib("VBIDE", "{0002E157-0000-0000-C000-000000000046}", 5, 3)

    ' Bunch of working code goes here

End Sub

'******************************************************************************
'AddLib: Adds a library reference to this script programmatically, so that
'        libraries do not need to be added manually.
'******************************************************************************
Private Function AddLib(libName As String, guid As String, major As Long, minor As Long)

    Dim exObj As Object: Set exObj = GetObject(, "Excel.Application")
    Dim vbProj As Object: Set vbProj = exObj.ActiveWorkbook.VBProject
    Dim chkRef As Object

    ' Check if the library has already been added
    For Each chkRef In vbProj.References
        If chkRef.Name = libName Then
            GoTo CleanUp
        End If
    Next

    vbProj.References.AddFromGuid guid, major, minor

CleanUp:
    Set vbProj = Nothing
End Function

我深受this stack article on dynamic referencing in excel.的启发

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-17 01:48:10

是的,根据Excel forms: identify unused code,您可以使用后期绑定

代码语言:javascript
复制
Dim VBProj
Dim VBComp
Set VBProj = ActiveWorkbook.VBProject
For Each VBComp In VBProj.vbcomponents

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29688683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档