2015-08-31 133 views
1

我有一个vba宏来打开Excel文件,包括只读文件。Excel vba打开只读文件错误

我用下面的代码来做到这一点:

Workbooks.Open((FileName:=MyFileName, UpdateLinks:=0, IgnoreReadOnlyRecommended:=True) 

截至2013年6月这永远不会失败。截至目前这不再有效。现在,当宏遇到一个只读文件时,该文件将出现在一个单独的窗口中,并且还会出现另存为提示(以前从未发生过)。

如果我点击取消,我得到一个路径未找到错误。如果我点击保存,文件将保存到其原始位置。这是全新的。在我的代码的这一部分中没有另存为命令。

它似乎是与微软的文件>保护工作簿>标记作为最后的东西新的东西。任何人看到这个?我找不到预防它的方法。我只是希望能够在没有进一步提示的情况下打开只读文件。

+2

[禁止 “文件正在使用” 对话](可能重复http://stackoverflow.com/questions/32251001/suppress-文件中使用的对话)。建议您将'ReadOnly:= True'和'Notify:= False'参数添加到[Workbooks.Open方法](https://msdn.microsoft.com/en-us/library/office/aa195811(v = office .11).aspx)命令。 – Jeeped

回答

-1

我还没有用过excel的VBA,但可能是因为excel中的宏安全设置被重置,所以它不再信任宏或试图使用它的VBA脚本。

+0

我不是故意粗鲁,但是,这不应该作为答案张贴,而是作为对原始问题的评论。 – aLearningLady

+0

我希望我可以,但不幸的是,自从我最近加入后,我没有足够的积分。我目前正试图获得这些观点,以便我可以做出评论而不是答案。 –

0

感谢您的意见。我确实找到了解决办法。在较新版本的Excel中,有一个新的ReadOnly指定:最后,即文件>保护工作簿>标记为最终。这与ReadOnly相同,只是使用另一个名称,并且不会在WorkBooks.Open(FileName:= ...)中显示为选项。如果我将Workbook.Final属性设置为False,那么我可以打开没有SaveAs提示的文件。

如果wbName.Final = TRUE,则 wbName.Final =假 结束如果