3

好的,到目前为止,我已经卸载并重新安装了 Office-2010 3 到 4 次,进行了 3 天的数小时研究,但没有成功。我开始从 Vbscript 或 Excel VBA 收到此错误,执行已工作数月的相同命令。我不确定我可能改变了什么,我不记得改变任何可能导致它的东西,但我把它固定在ReadOnly:=True参数上。我认为注册表可能有问题......但是重新安装应该可以解决它吗?它没有...

无论如何,我在 Excel 2010 上记录的非常简单的命令。这个命令工作正常,文件打开:

Sub Macro1()
     Workbooks.Open Filename:="C:\temp\file_9928_131101.xlsx"
End Sub

但是当我添加ReadOnly:=True参数时,它不起作用

Sub Macro1()
     Workbooks.Open Filename:="C:\temp\file_9928_131101.xlsx", ReadOnly:=True
End Sub

这是返回的错误Run-time error '1004' Method 'Open' of object 'Workbooks' failed

当我单击调试时,错误出现在唯一的代码行中。

4

8 回答 8

5

文件已损坏。用另一个名称重新保存它并在函数中更改名称。尝试它的工作原理,然后按照您想要的方式重命名文件。

它对我有用,我有一个损坏的文件。只读应该不是问题。

于 2013-12-10T11:56:47.260 回答
4

我对存储在本地 OneDrive 文件夹中的 Access 文件遇到了同样的问题,它引用了存储在同一本地 OneDrive 文件夹中的 Excel 文件。解决方案是将所有文件移动到“静态”(即不同步,不是 OneDrive)文件夹中。

认为这个特定的案例/应用程序可能会对某人有所帮助。

于 2017-07-26T00:16:29.827 回答
3

在这里为像我这样有此问题的其他人提供答案,而正常的解决方案不起作用。

造成这种情况的另一个潜在原因是临时文件损坏。我认为它可能仅适用于您尝试打​​开的文件位于网络驱动器或其他远程主机上的情况。

无论如何,请尝试擦除您的临时文件夹(就像您%temp%在 Windows 资源管理器中键入的那样),然后重新启动计算机。

于 2015-02-10T17:36:43.930 回答
1

我意识到这已经很晚了,但是如果您想自动打开和修复损坏的工作簿,请使用:

Set oWB = Workbooks.Open(Filename:="C:\my\file\path.xlsx", CorruptLoad:=XlCorruptLoad.xlRepairFile)
于 2018-08-24T09:50:57.813 回答
0

我也对 Workbook.Open 函数发疯了,莫名其妙地出现了奇怪的打开失败错误。我的代码还在 Open 函数之后做了一些复制粘贴,这似乎触发了它。

最终我发现关闭 ScreenUpdating 似乎会导致这种情况 - 保持 ScreenUpdating ON,让事情对我来说很容易点击(也许将来有人会觉得这很有帮助)。我是那些尽可能关闭所有代码的 ScreenUpdating 的人之一。

Application.ScreenUpdating = False
于 2020-08-05T14:39:07.197 回答
0

我有一个在后台运行的流氓 excel 进程。当我从任务管理器中杀死它时,代码起作用了。我希望这有帮助。

于 2018-07-24T13:37:52.297 回答
0

如果您从某个外部来源(例如电子邮件)下载文件,只需直接从电子邮件中打开文件,然后保存文件。尝试在宏中打开文件......希望它有效......它对我有用......:)

于 2015-08-02T22:32:51.457 回答
-2

我知道我回答得晚了,但我通过确保在目标机器上正确安装了 VBA 解决了一个类似的问题(同样的错误,但从 .Net 应用程序运行 excel)。

控制面板->程序和功能->卸载程序...找到您的Office安装,右键单击并选择“更改”->添加删除功能->Office共享功能->Visual Basic for Applications->从我的电脑运行

这为我做到了。

于 2016-12-19T19:49:33.783 回答