如何避免“编译错误:无法找到对象或库”
问题描述:
我有一个脚本,它运行几千个工作簿并从每个工作簿中获取数据。如何避免“编译错误:无法找到对象或库”
当脚本试图打开工作簿某些我收到以下错误:
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
但是这不起作用;我仍然收到编译错误。有什么方法可以确保这个错误不会弹出吗?
答
您需要更改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
使用'AutomationSecurity'也许可以试试这个方法:http://vbadud.blogspot.com/2007/10/disabling-macros-in-workbook- excel-vba.html –
当您手动打开某些工作簿时会发生什么情况?你看到一个错误? –
我认为错误在于'collectData'。无论如何,你可以通过打开VBEditor - >工具 - >引用来解决这个问题,以检查哪个引用是“MISSING” – Larry