Excel VBA阻止导入丢失的引用

时间:2018-09-04 13:06:56

标签: excel vba excel-vba

我正在Excel 2016上的工作表上工作,但是当我希望我的同事在运行Excel 2013的计算机上对其进行测试时,它会抛出错误:

  

“找不到项目或库错误”

我知道您可以通过进入“工具”->“参考”并取消选中“ MISSING”库来轻松摆脱此错误。

但是问题是,如果有太多人不一定知道VBA是什么,而当他们要求他们遵循简单的教程时却感到恼火,那就太复杂了。

是否有技巧可以一开始就消除所有丢失的参考?

This is an illustration from cpearson's site.

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。

但是,由于需要更多参考“ Microsoft Visual Basic for Application Extensibility”(访问VBIDE对象),因此您将打开一系列新问题。安全设置以启用“对Visual Basic Project的信任访问”(出于充分原因,默认情况下将其禁用)。

话虽这么说: 如果您遵守这两个条件,则可以运行以下例程从活动工作簿中删除所有损坏的引用:

Option Explicit
Sub RemoveReferences()
    Dim VBAEditor As VBIDE.VBE
    Dim vbProj As VBIDE.VBProject
    Dim chkRef As VBIDE.Reference

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

    For Each chkRef In vbProj.References
        If chkRef.IsBroken Then
            vbProj.References.Remove chkRef
        End If
    Next

    Set vbProj = Nothing
    Set VBAEditor = Nothing
End Sub