locking编辑 – VBA只读

我有一个macros,打开多个文件,并在其上运行代码。 然而,如果涉及到一个文件“locking编辑”,它会给我一个错误说

FileName目前正在使用中。 稍后再试。

我怎样才能打开所说的文件为只读? 我试过了:

Workbooks.Open FileName:=Selected_EOS_Report_File, ReadOnly:=True 

 Workbooks.Open FileName:=Selected_EOS_Report_File, ReadOnly:=True, IgnoreReadOnlyRecommended:=True 

任何帮助表示赞赏!

更新:第一种方法实际上工作。 我的较大的代码运行在通过“Selected_EOS_Report_File”variables的多个文件上。 在某个时候,一个文件通过的是一个Excel临时文件(开头文件名为“〜$”。)代码不能读取temp,所以我创build了一个if / then语句跳过任何这样的文件,只读取保存Excel文件。

据我所知,你需要Notify:= True

MSDN链接

通知
如果无法以读/写模式打开文件,则该参数为True,将文件添加到文件通知列表中。 Microsoft Excel将以只读方式打开文件,轮询文件通知列表,然后在文件变得可用时通知用户。 如果此参数为False或省略,则不会请求通知,并且任何尝试打开不可用的文件都将失败。

尝试这个?

 Dim wb As Workbook Set wb = GetObject(Selected_EOS_Report_File) wb.Open 'ReadOnly:=True (removed the readonly part) 

从这篇文章派生: 与VBA打开.xlsx,文件在使用中的错误。 只读不工作

编辑

这里的一个post指出了旧版本的类似问题,如果你不xlsx然后消失:

https://social.technet.microsoft.com/Forums/en-US/5c9f7444-a2c7-4598-beca-21a6d5575d94/excel-file-currently-in-use