好的,到目前为止我已经卸载了&重新安装Office-2010 3到4次,完成3天的研究工作3天没有成功。我开始从Vbscript或Excel VBA获取此错误,执行已运行数月的相同命令。我不确定我可能已经改变了什么,我不记得改变任何可能导致它的东西,但我把它钉在了ReadOnly:=True
参数上。我认为注册表可能有问题......但是重新安装应该解决它吗?它没有......
无论如何,我在Excel 2010上录制的命令非常简单。此命令工作精细并打开文件:
Sub Macro1()
Workbooks.Open Filename:="C:\temp\file_9928_131101.xlsx"
End Sub
但是当我添加 ReadOnly:= True 参数时,它会 NOT WORK :
Sub Macro1()
Workbooks.Open Filename:="C:\temp\file_9928_131101.xlsx", ReadOnly:=True
End Sub
这是返回的错误 运行时错误'1004'方法'打开'对象'工作簿'失败 :
当我单击Debug时,错误位于唯一的代码行。
答案 0 :(得分:4)
文件已损坏。使用其他名称重新保存,并在功能中更改名称。尝试它的工作原理,然后重命名文件,你想要调用它。
它对我有用,我有一个损坏的文件。只读应该不是问题。
答案 1 :(得分:3)
对于像我这样有这个问题和正常解决方案的人来说,这里的答案是行不通的。
另一个可能的原因是损坏的临时文件。我认为它可能仅适用于您尝试打开的文件位于网络驱动器或其他远程主机上的情况。
无论如何,请尝试擦除您的临时文件夹(如果您在Windows资源管理器中键入%temp%
),然后重新启动计算机。
答案 2 :(得分:1)
我对存储在本地OneDrive文件夹中的Access文件存在同样的问题,引用存储在同一本地OneDrive文件夹中的Excel文件。解决方案是将所有文件移动到"静态" (即,不同步,而不是OneDrive)文件夹。
认为这个特定案例/应用可能对某人有帮助。
答案 3 :(得分:0)
如果您从某个外部源(例如电子邮件)下载文件,只需直接从电子邮件中打开该文件,然后保存该文件。尝试在宏中打开文件...希望它有效...它对我有用....:)
答案 4 :(得分:0)
我有一个在后台运行的恶意Excel进程。当我从任务管理器中杀死它时,代码起作用了。我希望这会有所帮助。
答案 5 :(得分:0)
我知道这很晚了,但是如果您要自动打开并修复损坏的工作簿,请使用:
Set oWB = Workbooks.Open(Filename:="C:\my\file\path.xlsx", CorruptLoad:=XlCorruptLoad.xlRepairFile)
答案 6 :(得分:0)
我也是,疯狂地使用Workbook.Open函数,没有明显的原因就得到了奇怪的Open fail错误。我的代码还在Open函数之后做了一些复制粘贴,这似乎触发了它。
最终,我发现关闭ScreenUpdating似乎会导致这种情况-保持ScreenUpdating处于打开状态,这对我来说是一件好事(也许将来有人会觉得有用)。我就是那些倾向于尽可能地将所有代码都关闭ScreenUpdating的人之一。
Application.ScreenUpdating = False
答案 7 :(得分:-1)
我知道我迟到了,但是我通过确保在目标计算机上正确安装了VBA,解决了类似的问题(同样的错误,但是从.Net应用程序运行excel)。
控制面板 - >程序和功能 - >卸载程序...找到您的Office安装,右键单击并选择“更改” - > gt;添加删除功能 - > Office共享功能 - > Visual Basic for Applications-> Run from My Computer
这对我有用。