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)

希望对大家有用!

相关推荐
噢,我明白了16 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
REST_302717 小时前
告别Excel孤岛:一款任务链路可视化工具带来的真实改变
大数据·微服务·云计算·编辑器·excel·动态规划
蓝创工坊Blue Foundry1 天前
多个同模板 PDF,怎样批量提取同一类字段到 Excel
运维·数据库·pdf·自动化·ocr·excel
蓝创工坊Blue Foundry2 天前
图片文字提取到 Excel:批量任务如何先定义要交付的字段
运维·服务器·开发语言·数据库·自动化·ocr·excel
用户298698530142 天前
Python 实现 Excel 与 Markdown 互转的实用指南
后端·python·excel
2501_930707782 天前
如何使用C#代码在 Excel 中编辑或删除批注
excel
SunnyDays10113 天前
Python Excel 切片器操作详解:自动创建智能交互式报表
python·excel·数据筛选·切片器
观远数据3 天前
Excel到数据资产池:文件数据入湖的治理规范怎么建
前端·javascript·excel
蓝创工坊Blue Foundry3 天前
PDF 批量提取指定内容到 Excel:按字段整理多个 PDF 的方法
pdf·ocr·excel·文心一言·paddlepaddle·paddle
用户298698530143 天前
React 项目中灵活管理 Excel 工作表:增删与移动
javascript·react.js·excel