VBA运行时错误1004的解决方法
一、由工作表格受保护引起错误1004的解决方法
- 重命名文件
- 将Excel表格文件重命名,把后缀名从xls或xlsx修改为zip的后缀名,修改文件后缀的过程中若出现提示弹窗,选择“是”即可。
- 打开压缩文件并处理受保护文件
- 修改完成后双击打开“压缩文件”。
- 找到有密码保护的文件(例如sheet7.xml),拖拽复制该文件到文件夹中。
- 编辑xml文件
- 在.xml文件上单击右键,选择打开方式为“记事本”。
- 打开之后将类似“sheetProtection algorithmName='SHA - 512' hashValue='dm7v93ORsH3MIo7V9R9CXTm6Vq1MJOSm1EBtbv0VVLnlPWYcnH6tH1YwzHBQI0gPuMZ1FgI1C9ekrw5DcA5Mw==' saltValue='56DHj5400NyRMGsXbo3uIg==' spinCount='100000' sheet='1' objects='1' scenarios='1' /”的内容删除,然后保存,并关闭sheet7.xml文件。
- 替换文件并还原文件格式
- 将修改后的.xml文件重新拉回到之前打开的zip压缩包中,若提示覆盖则选择替换。
- 打包完成后关闭ZIP文件,再将zip格式重新改回xls或xlsx,弹出是否修改时点击“是”完成修改。
二、因宏设置不当引起错误1004的解决方法
- 调整宏设置(针对按下F5弹出错误1004的情况)
- 单击文件――选项――信任中心――打开“信任中心”对话框,宏设置――勾选“信任对VBA工程对象模型的访问”。
三、其他情况引起错误1004的解决方法
- 检查代码
- Excel宏是由代码组成,如果代码中存在未定义的对象、数组越界等问题就会出错。可以通过按F8逐行执行代码,找出错误之处并修改。
- 检查数据源
- Excel宏通常需要从数据源读取数据,若数据源存在空值、重复值等问题会导致运行错误。需要对数据源进行清洗和处理。
- 检查宏安全性设置
- 打开Excel,点击“文件”菜单,选择“选项”。在“选项”窗口中,选择“信任中心”选项卡,点击“信任中心设置”。在“信任中心”窗口中,选择“宏设置”,对宏的安全性进行设置。如果宏来自不受信任的来源,要进行适当安全性设置以确保宏运行安全。
- 处理隐藏工作表问题(特定操作下)
- 如果是在进行如将工作簿拆分多个工作表操作时,若有隐藏工作表可能导致错误1004。的解决办法就是取消隐藏所有工作表,或者进行判断如果是隐藏工作表就过滤掉(如
ifsht.Visible = True则执行复制动作)
本篇文章所含信息均从网络公开资源搜集整理,旨在为读者提供参考。尽管我们在编辑过程中力求信息的准确性和完整性,但无法对所有内容的时效性、真实性及全面性做出绝对保证。读者在阅读和使用这些信息时,应自行评估其适用性,并承担可能由此产生的风险。本网站/作者不对因信息使用不当或误解而造成的任何损失或损害承担责任。
