我有一个打开多个文件的宏。如果它来到一个文件“锁定编辑”它会给予我一个错误说
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”变量传递的多个文件上。在某个时候,传递的文件是Excel临时文件(文件名以“~$”开头)。我创建了一个if/then语句来跳过任何这样的文件。
3条答案
按热度按时间50pmv0ei1#
据我所知,你需要
Notify:= True
MSDN link
通知
如果文件不能以读/写模式打开,则此参数为True将文件添加到文件通知列表中。Microsoft Excel将以只读方式打开文件,轮询文件通知列表,然后在文件可用时通知用户。如果此参数为False或被省略,则不请求通知,并且任何打开不可用文件的尝试都将失败。
waxmsbnn2#
下面的代码解决了我遇到的一个类似问题。这将设置ReadOnly和IgnoreReadOnlyRecommended参数。
我在Excel 365上测试了这个。
ReadOnly:如果为True,则以只读模式打开工作簿。
忽略只读建议:如果为True,则Microsoft Excel不显示建议只读的消息(如果工作簿是以“建议只读”选项保存的)。
link to VBA Documentation
aurhwmvo3#
试试这个?
来源于此帖子:Opening .xlsx with VBA, File in Use error. Read-only not working
编辑
这里的一个帖子指出了旧版本中的类似问题,如果您取消xlsx的日期,那么它就会消失:
https://social.technet.microsoft.com/Forums/en-US/5c9f7444-a2c7-4598-beca-21a6d5575d94/excel-file-currently-in-use