Excel VBA 运行时错误1004’:方法‘Open’作用于对象‘Workbooks’时失败 的解决方法

使用Excel编写VBA脚本时出现如下错误:

运行时错误1004':

方法'Open'作用于对象'Workbooks'时失败

我的功能是打开一系列excel文件从中自动复制数据到汇总excel的各个指定的sheet中,来源的excel是从网站上下载的。

出现这个问题后从网上查找各种办法,有说要进行信任设置的,有说要删除XLSSTART文件夹的,有说什么新版本office对vba格式要求更严格的,信任设置我试了没起作用,后面那2个删除文件夹我就没试,明显不靠谱。

这个问题困扰了我2天,微软官方的文档也找来看了,期间也调试了很多遍还是无法打开,后来想想可能StackOverflow上有办法解决,这个错误翻译成英文Run-time Error '1004' - Method 'Open' of object 'Workbooks' failed,果然是有相关问题解答的,所以学好英语很重要。

错误原理:来源文件是从网站上下载的,而网站上生成的这些excel文件可能格式是不完整的,也就是corrupted,所以在打开这些文件时需要加参数CorruptLoad指定处理方式,该参数可设置的值,可为以下常量之一:xlNormalLoad、xlRepairFile 和 xlExtractData。 如果未指定值,则默认行为为 xlNormalLoad,并且不会在通过 OM 启动时尝试恢复。在这里我设置为修复,也就是xlRepairFile ,添加这个参数后open方法恢复工作:

修改前的代码:

vbscript 复制代码
Set sourceWorkbook = Workbooks.Open(sourceFolderPath & sourceFileName)

修改后的代码:

vbscript 复制代码
Set sourceWorkbook = Workbooks.Open(sourceFolderPath & sourceFileName, CorruptLoad:=XlCorruptLoad.xlRepairFile)

希望对大家有用!

相关推荐
琪伦的工具库1 小时前
批量excel文件删除列工具使用说明:按列号或列名批量删除/保留,支持预览与大文件优化
大数据·excel
步达硬件3 小时前
【MATLAB】读取视频,提取视频每一帧特征值并存成EXCEL,并保存个别图像
matlab·excel·音视频
城数派20 小时前
2000-2025年我国省市县三级逐8天日间地表温度数据(Shp/Excel格式)
数据库·arcgis·信息可视化·数据分析·excel
开开心心就好1 天前
能把网页藏在Word里的实用摸鱼工具
linux·运维·服务器·windows·随机森林·逻辑回归·excel
锵锵锵锵~蒋1 天前
AI全托管处理EXCEL(并接入AI平台)
人工智能·excel·mcp·ai全托管·ai提效’
yuhulkjv3351 天前
ChatGPT Gemini Claude Grok导出的Excel公式失效
人工智能·ai·chatgpt·excel·豆包·deepseek·ai导出鸭
琪伦的工具库1 天前
批量Excel文件内容组合工具使用说明:按列组合拼接导出TXT/CSV/Excel,支持合并保存与文件预览
excel
ManageEngineITSM2 天前
IT服务台为什么越忙越低效?
人工智能·自动化·excel·itsm·工单系统
开开心心_Every2 天前
内存清理软件灵活设置,自动阈值快捷键清
运维·服务器·pdf·web3·电脑·excel·共识算法