我有同样的问题。文件已损坏,并打开VBA引发该错误。作为一个可能的解决方案,我发现这个(faname是与路径的字符串):
Workbooks.Open FileName:= fname, UpdateLinks:=False, ReadOnly:=True, _
IgnoreReadOnlyRecommended:=True, Password:="", Editable:=FALSE, _
CorruptLoad:= xlExtractData
重要的部分是“CorruptLoad:= xlExtractData”,这使得它可以装载从损坏的文件中的数据,而不引发此错误。其他的东西就在那里,以防止文件做一些......连同
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
Application.EnableEvents = False
Application.AutomationSecurity = msoAutomationSecurityForceDisable
Application.Calculation = xlCalculationManual
以防万一打开文件之前......如果你这样做,不要忘记你的宏完成之前撤消喜欢(这是我的标准设置,使用自己的你可能会发现他们出在立即窗口使用Debug.Print!):
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Application.EnableEvents = True
Application.Calculation = xlNormal
Application.AutomationSecurity = msoAutomationSecurityLow
小心你的安全设置,实际上是不盲目的这些变化复制设置... 也最好赶上错误(“错误...”),并终止重置您以前的设置。
尝试手动打开它以获取关于该文件的不同内容的线索。可能有一些不可读的项目或文件可能已损坏。 – L42 2014-09-11 02:07:14
什么是文件类型,它是否有任何区别,首先尝试问题文件,而不是所有的文件在同一位置? – pnuts 2014-09-11 02:10:31
@pnuts类型是Microsoft Excel 97-2003工作表(.xls),是的,所有文件具有相同的类型和相同的位置。我试着把问题文件放在第一位,但没有任何区别。运行时错误仍然显示。 as @ l42建议的 – danielle 2014-09-11 05:30:15