如何避免“编译错误:无法找到对象或库”

问题描述:

我有一个脚本,它运行几千个工作簿并从每个工作簿中获取数据。如何避免“编译错误:无法找到对象或库”

当脚本试图打开工作簿某些我收到以下错误:

Compile Error: Can't find project or library 

我以为我可以避开这条消息,我的理解是,由于问题的引用,通过打开的工作簿没有宏或以这种方式提示:

dim bk as workbook 
for each path in listOfWorkbookPaths 
Application.DisplayAlerts = False 
Application.EnableEvents=false 
set bk=workbooks.open(path) 
Application.EnableEvents=true 
Application.DisplayAlerts = True 
collectData(bk) 
next 

但是这不起作用;我仍然收到编译错误。有什么方法可以确保这个错误不会弹出吗?

+0

使用'AutomationSecurity'也​​许可以试试这个方法:http://vbadud.blogspot.com/2007/10/disabling-macros-in-workbook- excel-vba.html –

+0

当您手动打开某些工作簿时会发生什么情况?你看到一个错误? –

+1

我认为错误在于'collectData'。无论如何,你可以通过打开VBEditor - >工具 - >引用来解决这个问题,以检查哪个引用是“MISSING” – Larry

您需要更改AutomationSecurity设置:

 
Sub ImportFromExternalWorkbooks() 
    Dim bk as Workbook 
    Dim secAutomation As MsoAutomationSecurity 

    secAutomation = Application.AutomationSecurity 
    Application.AutomationSecurity = msoAutomationSecurityForceDisable 
    For Each path in listOfWorkbookPaths 
     Set bk=Workbooks.Open(path) 
     collectData bk 
    Next 
    Application.AutomationSecurity = secAutomation 
End Sub