Gil Peretz
Gil Peretz

Reputation: 2419

Open File Without Calling Filepath

I'm using excel VBA. I want to press a button that opens another file directly without the effect of "choosing file window".

This is the current code:

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

In this case, the file is in the same folder as the main file.

Is there any way to do it without entering the file's path?

Upvotes: 16

Views: 101101

Answers (5)

Mohit Singh
Mohit Singh

Reputation: 1

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

Upvotes: 0

DeerSpotter
DeerSpotter

Reputation: 433

Open Folder of 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

Context: Usually your revisions on your project consistently Change, or you have a automaticially generated Workbook with a dynamic name. Whatever the Case. This will know your workbook path location and ask if you want to open that specific folder.

This was very useful for me when i dynamically saved out a bunch of Excels programmatically in the same folder of the workbook. Because instead of closing/minimizing the workbook to go to explorer. I could focus on the project and not lose train of thought.

Upvotes: -1

Doc Brown
Doc Brown

Reputation: 20044

If the file is in the same folder as the document containing your VBA macro, use

ThisWorkbook.Path

for example:

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

(this works even if the document is not the active one any more, or you changed the current directory).

Upvotes: 12

Simon
Simon

Reputation: 6152

If the file name is fixed you can use the ActiveWorkbook.Path function to return the path of the current workbook:

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

Check if you need that extra slash character.

Upvotes: 33

rajah9
rajah9

Reputation: 12329

If it is in the same folder, then

Workbooks.Open("ObsReportExcelWorkbook.xlsx")

or

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

should work. I just tried both in Excel VBA, with success.

Upvotes: 2

Related Questions