打开文件而不调用Filepath

时间:2011-05-04 18:16:18

标签: excel vba

我正在使用excel VBA。我想按一个按钮直接打开另一个文件,而不会“选择文件窗口”。

这是当前的代码:

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

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

有没有办法在不输入文件路径的情况下执行此操作?

5 个答案:

答案 0 :(得分:19)

如果文件名已修复,您可以使用ActiveWorkbook.Path函数返回当前工作簿的路径:

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

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

答案 1 :(得分:9)

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

ThisWorkbook.Path

例如:

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

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

答案 2 :(得分:2)

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

Workbooks.Open("ObsReportExcelWorkbook.xlsx")

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

应该有效。我刚刚在Excel VBA中尝试过这两种方法,并取得了成功。

答案 3 :(得分:0)

Workbooks.Open(“ D:\ data \ Mohit Singh \ msk \ data \ book1.xlsx”)

答案 4 :(得分:-1)

打开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

上下文: 通常,您对项目的修订会持续更改,或者您自动生成具有动态名称的工作簿。无论如何。这将知道您的工作簿路径位置,并询问您是否要打开该特定文件夹。

当我在工作簿的同一文件夹中以编程方式动态保存一堆Excel时,这对我非常有用。因为不是关闭/最小化工作簿去探索者。我可以专注于该项目,而不是失去思路。