Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使VBA自动接受打开的写保护文件_Vba_Excel - Fatal编程技术网

使VBA自动接受打开的写保护文件

使VBA自动接受打开的写保护文件,vba,excel,Vba,Excel,我有一套VBA代码,可以打开2个文件,复制每个文件中的内容,然后粘贴到第三个文件中。 问题是,这两个文件(比如“alm”和“fiber”)经常被其他用户使用,因此当我使用Set alm=Workbooks.Open(alm_path)时,我会遇到一个错误,因为Excel无法打开它。我假设这是由于文件被另一个用户打开,然后我必须以写保护的方式打开它。有什么聪明的方法可以做到这一点吗?我对VBA代码相当陌生,如注释中所述,您可以以只读方式打开工作簿,示例如下: Dim alm As Workbook

我有一套VBA代码,可以打开2个文件,复制每个文件中的内容,然后粘贴到第三个文件中。
问题是,这两个文件(比如“alm”和“fiber”)经常被其他用户使用,因此当我使用
Set alm=Workbooks.Open(alm_path)
时,我会遇到一个错误,因为Excel无法打开它。我假设这是由于文件被另一个用户打开,然后我必须以写保护的方式打开它。有什么聪明的方法可以做到这一点吗?我对VBA代码相当陌生,如注释中所述,您可以以只读方式打开工作簿,示例如下:

Dim alm As Workbook
Set alm = Workbooks.Open(Filename:=alm_path, ReadOnly:=True)

到目前为止你研究/尝试了什么?您收到的实际错误是什么?是什么让您“假设”这是因为文件已打开?如果其他用户打开了它,您打算如何打开它?写保护?打开文件1和文件2时,将
ReadOnly
参数设置为True。