我使用的是Excel VBA。我想按下一个按钮,直接打开另一个文件,而没有“选择文件窗口”的效果。打开文件不调用文件路径
这是当前的代码:
Sub loadFile_click()
Workbooks.Open("C:\Users\GIL\Desktop\ObsReportExcelWorkbook.xlsx")
End Sub
在这种情况下,该文件是在同一文件夹作为主要文件。
有没有办法做到这一点,而无需输入文件路径?
我使用的是Excel VBA。我想按下一个按钮,直接打开另一个文件,而没有“选择文件窗口”的效果。打开文件不调用文件路径
这是当前的代码:
Sub loadFile_click()
Workbooks.Open("C:\Users\GIL\Desktop\ObsReportExcelWorkbook.xlsx")
End Sub
在这种情况下,该文件是在同一文件夹作为主要文件。
有没有办法做到这一点,而无需输入文件路径?
如果文件名是固定的,你可以使用ActiveWorkbook.Path函数返回当前工作簿的路径:
Dim FileName as string FileName = ActiveWorkbook.Path & "\myfile.xlsx
检查是否需要额外的斜杠。
如果是在同一个文件夹,然后
Workbooks.Open("ObsReportExcelWorkbook.xlsx")
或
Workbooks.Open(".\ObsReportExcelWorkbook.xlsx")
应该工作。我只是在Excel VBA中尝试过,并取得了成功。
我只是尝试在VBA中,我得到错误“400”... – 2011-05-04 18:35:27
如果该文件是在同一文件夹中包含VBA宏的文档,使用
ThisWorkbook.Path
例如:
Workbooks.Open(ThisWorkbook.Path & "\ObsReportExcelWorkbook.xlsx")
(这个工程即使文档不处于活动状态或者你改变了当前目录)。
如何打开文件夹位置而不是工作簿? – DeerSpotter 2015-08-21 16:15:28
@MaximTeleguz:通过“打开文件夹位置”定义你的意思,或者在SO上发布一个问题,并明确说明你的想法。 – 2015-08-21 16:42:41
请参阅下面的答案。我想我解决了它。 – DeerSpotter 2015-08-21 16:56:20
语境下的打开文件夹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
: 通常你对你的项目持续发生改变,或者修改有automaticially产生的工作簿与动态名。无论如何。这将知道您的工作簿路径位置,并询问您是否要打开该特定文件夹。
这对我来说非常有用,当我动态地在工作簿的同一个文件夹中以编程方式保存了一堆Excels。因为不是关闭/最小化工作簿以进入资源管理器。我可以专注于这个项目,而不是失去思路。
这不提供问题的答案。要批评或要求作者澄清,请在其帖子下方留言。 – Tunaki 2015-08-21 17:42:11
嘿,你能告诉我如何在评论部分发布代码,以便它可读。 此外,我被引导到谷歌这个特定问题的这个页面。更多的人会像我一样被带到这里。为了节省时间,他们会看到我的回应。 – DeerSpotter 2015-08-21 17:58:19
谢谢,其工作 – 2011-05-04 18:37:10
@Gil Peretz:考虑如果我的答案不符合你的需要。 – 2011-05-04 18:38:31