У меня была та же проблема. Файл был поврежден, и 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
Просто в качестве меры предосторожности, прежде чем открыть файл ... если что не забудьте отменить его перед вашей Macro отделки как (это мои стандартные настройки, использовать свои собственные, вы можете найти их с помощью Debug.Print в окне Immediate!):
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Application.EnableEvents = True
Application.Calculation = xlNormal
Application.AutomationSecurity = msoAutomationSecurityLow
Будьте осторожны, что ваши настройки безопасности на самом деле и не слепо копировать эти изменения settings ... Также лучше всего ловить ошибки («On Error ...») и завершаться сбросом предыдущих настроек.
Попробуйте открыть его вручную, чтобы получить представление о том, что в этом файле отличается. Могут быть некоторые нечитаемые элементы, или файл может быть поврежден. – L42
Что такое тип файла, не имеет значения, попробовать сначала файл проблемы, все ли файлы в одном месте? – pnuts
Тип @pnuts - это рабочий лист Microsoft Excel 97-2003 (.xls) и да, все файлы имеют одинаковый тип и одно и то же местоположение. Сначала я попытался поставить файл проблемы, но это не имеет никакого значения. Ошибка времени выполнения все еще отображается. – danielle