Excel 打开文件而不调用Filepath
我正在使用excelvba。我想按下一个按钮,直接打开另一个文件,而不产生“选择文件窗口”的效果 这是当前代码:Excel 打开文件而不调用Filepath,excel,vba,Excel,Vba,我正在使用excelvba。我想按下一个按钮,直接打开另一个文件,而不产生“选择文件窗口”的效果 这是当前代码: Sub loadFile_click() Workbooks.Open("C:\Users\GIL\Desktop\ObsReportExcelWorkbook.xlsx") End Sub 在这种情况下,该文件与主文件位于同一文件夹中 有没有办法不输入文件的路径就可以执行此操作?如果文件位于同一文件夹中,则 Workbooks.Open("ObsReportExcelWorkbo
Sub loadFile_click()
Workbooks.Open("C:\Users\GIL\Desktop\ObsReportExcelWorkbook.xlsx")
End Sub
在这种情况下,该文件与主文件位于同一文件夹中
有没有办法不输入文件的路径就可以执行此操作?如果文件位于同一文件夹中,则
Workbooks.Open("ObsReportExcelWorkbook.xlsx")
或
应该有用。我刚刚在Excel VBA中尝试了这两种方法,都成功了。如果文件名已修复,则可以使用ActiveWorkbook.Path函数返回当前工作簿的路径:
Dim文件名为字符串
FileName=ActiveWorkbook.Path&“\myfile.xlsx
检查是否需要额外的斜杠字符。如果文件与包含VBA宏的文档位于同一文件夹中,请使用
ThisWorkbook.Path
例如:
Workbooks.Open(ThisWorkbook.Path & "\ObsReportExcelWorkbook.xlsx")
(即使该文档不再是活动文档,或者您更改了当前目录,此操作仍然有效)。打开active工作簿的文件夹
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时,这对我非常有用。因为我不必关闭/最小化工作簿以转到资源管理器。我可以专注于项目,而不会失去思路。Workbooks.Open(“D:\data\Mohit Singh\msk\data\book1.xlsx”)如何打开文件夹位置而不是工作簿?@MaximTeleguz:定义“打开文件夹位置”的含义“,或者在这里贴一个问题,清楚地描述一下你的想法。@MaximTeleguz:你似乎不明白这是怎么回事。这不是一个讨论论坛。如果你只是发布了一个OP没有提出的问题的答案,你的答案将被否决并删除。如果你有问题,单独问。如果你想回答自己的问题,那完全可以。请熟悉网站规则。这并不是问题的答案。若要评论或要求作者澄清,请在他们的帖子下方留下评论。嘿,你能告诉我如何在评论部分发布代码,这样代码才可读吗。另外,我是从谷歌上的那个特定问题被引导到这个页面的。更多的人会像我一样被带到这里。为了节省时间,他们会看到我的回答。我也尝试了这两种方法。我得到错误400。excel的“当前路径”似乎与上次保存的文件相同。为了解决这个问题,@Doc Brown solution对我很有效
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