我有同样的问题。文件已损坏,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
请小心您的安全设置的实际内容,不要盲目复制这些设置更改......
最好还捕获错误(“错误...”)并通过重置以前的设置来终止。