我正在使用excel VBA。我想按一个按钮直接打开另一个文件,而不会“选择文件窗口”。
这是当前的代码:
Sub loadFile_click()
Workbooks.Open("C:\Users\GIL\Desktop\ObsReportExcelWorkbook.xlsx")
End Sub
在这种情况下,该文件与主文件位于同一文件夹中。
有没有办法在不输入文件路径的情况下执行此操作?
答案 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时,这对我非常有用。因为不是关闭/最小化工作簿去探索者。我可以专注于该项目,而不是失去思路。