不调用文件path打开文件

我正在使用Excel VBA。 我想按下一个button,直接打开另一个文件,没有“select文件窗口”的效果。

这是当前的代码:

Sub loadFile_click() Workbooks.Open("C:\Users\GIL\Desktop\ObsReportExcelWorkbook.xlsx") End Sub 

在这种情况下,该文件与主文件位于相同的文件夹中。

有没有办法做到这一点,而不需要input文件的path?

如果文件名是固定的,则可以使用ActiveWorkbook.Path函数返回当前工作簿的path:

Dim FileName as string FileName = ActiveWorkbook.Path & "\myfile.xlsx

检查是否需要额外的斜线字符。

如果文件与包含VBAmacros的文档位于同一文件夹中,请使用

 ThisWorkbook.Path 

例如:

 Workbooks.Open(ThisWorkbook.Path & "\ObsReportExcelWorkbook.xlsx") 

(即使文档不再是活动文档,或者更改了当前目录,这也是有效的)。

如果它在同一个文件夹中,那么

 Workbooks.Open("ObsReportExcelWorkbook.xlsx") 

要么

 Workbooks.Open(".\ObsReportExcelWorkbook.xlsx") 

应该pipe用。 我只是在Excel VBA中都试过,成功了。

打开ActiveWorkBook的文件夹

 Sub OpenFolderofProject() Dim strMsg As String, strTitle As String Dim sFolder As String sFolder = ThisWorkbook.Path strMsg = "Open WorkBook Folder Location? " strTitle = "Folder Location:" & sFolder If MsgBox(strMsg, vbQuestion + vbYesNo, strTitle) = vbNo Then Else Call Shell("explorer.exe " & sFolder, vbNormalFocus) End If End Sub 

上下文:通常您的项目的修订版本一致更改,或者您有一个dynamic名称的自动生成的工作簿。 无论如何。 这将知道您的工作簿path位置,并询问您是否要打开该特定的文件夹。

这对我来说非常有用,当我dynamic地在工作簿的同一个文件夹中以编程方式保存了一堆Excels。 因为不是closures/最小化工作簿去浏览器。 我可以专注于这个项目,而不是失去思路。