Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 Excel工作簿。仅当我先手动打开它时,“打开”才有效_Vba_Excel - Fatal编程技术网

VBA Excel工作簿。仅当我先手动打开它时,“打开”才有效

VBA Excel工作簿。仅当我先手动打开它时,“打开”才有效,vba,excel,Vba,Excel,我在Excel文件中有一个小VBA脚本,可以在Windows网络(2012 R2)中打开另一个xlsx文件(在同一文件夹中) 如果在打开后尝试运行脚本(通过按钮),则会出现错误1004(未找到文件),但如果先手动打开目标文件,然后关闭它,则在调用它时脚本会正确运行 我在Mac OSX上用Excel 2016和Windows 7用Excel 2013本地试用了,有两个不同的文件(名称),即使我不在网络中,我也会遇到同样的问题。我还尝试与不同的用户测试权限 我还尝试删除空格和其他特殊字符,得到了相同

我在Excel文件中有一个小VBA脚本,可以在Windows网络(2012 R2)中打开另一个xlsx文件(在同一文件夹中)

如果在打开后尝试运行脚本(通过按钮),则会出现错误1004(未找到文件),但如果先手动打开目标文件,然后关闭它,则在调用它时脚本会正确运行

我在Mac OSX上用Excel 2016和Windows 7用Excel 2013本地试用了,有两个不同的文件(名称),即使我不在网络中,我也会遇到同样的问题。我还尝试与不同的用户测试权限

我还尝试删除空格和其他特殊字符,得到了相同的结果

我知道这可能与安全性有关,因为该文件包含宏和ODBC调用,但我找不到什么可以解决这个问题

以下是脚本:

Sub Ouvrir_donnees_commandeventes_actual_ibm()

StopCalc
Workbooks.Open "Compilation vente en ligne (VTE_LIGNE).xlsx"
StartCalc

End Sub
谁能帮我找出错误的原因?
谢谢

您需要使用完整路径才能完成此操作

Workbooks.Open(Application.ThisWorkbook.Path & "/Compilation vente en ligne (VTE_LIGNE).xlsx")
还要记住,mac电脑上需要正斜杠,如果您在windows上运行它,则需要更改为
\
反斜杠,或者使用
应用程序.PathSeparator
而不是硬编码反斜杠/正斜杠

Workbooks.Open(Application.ThisWorkbook.Path & Application.PathSeparator & "Compilation vente en ligne (VTE_LIGNE).xlsx")

要真正打开它,您需要使用完整路径,如:
“C:\Compilation vente en ligne(VTE_ligne).xlsx”
,否则它只查看打开的工作簿。尝试此
工作簿。打开此工作簿。路径&“\Compilation vente en ligne(VTE_ligne).xlsx”
,如果它们位于同一路径中。谢谢@Peh,这在Windows上工作,正如user3005775所回答的那样,PathSeparator方法将对我的情况有所帮助。谢谢@user3005775,我能问一下为什么您从“应用程序”调用该方法吗?因为它也可以在没有任何限制的情况下工作。