VBA Excel Workbooks.Open仅在我首先手动打开它时才有效

时间:2017-05-30 14:56:17

标签: excel vba excel-vba

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

如果我在打开后尝试运行脚本(从按钮),我得到错误1004(找不到文件)但是如果我先手动打开目标文件而不是关闭它,那么当我调用时脚本运行正常它...

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

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

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

这是脚本:

Sub Ouvrir_donnees_commandeventes_actual_ibm()

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

End Sub

任何人都可以帮我找到导致错误的原因吗? 谢谢

1 个答案:

答案 0 :(得分:1)

你需要使用你可以做到的完整路径

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

还记得在mac上需要正斜杠,如果你在Windows上运行它需要更改为\反斜杠,或者使用Application.PathSeparator而不是硬编码背面/正斜线。

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