Открыть файл без вызова FilePath - PullRequest
5 голосов
/ 04 мая 2011

Я использую Excel VBA. Я хочу нажать кнопку, которая открывает другой файл напрямую, без эффекта «выбора окна файла».

Это текущий код:

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

В этом случае файл находится в той же папке, что и основной файл.

Есть ли способ сделать это без указания пути к файлу?

Ответы [ 4 ]

19 голосов
/ 04 мая 2011

Если имя файла является фиксированным, вы можете использовать функцию ActiveWorkbook.Path, чтобы получить путь к текущей рабочей книге:

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

Проверьте, нужен ли вам этот дополнительный символ косой черты.

9 голосов
/ 04 мая 2011

Если файл находится в той же папке, что и документ, содержащий макрос VBA, используйте

ThisWorkbook.Path

, например:

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

(это работает, даже если документ неактивным или вы изменили текущий каталог).

2 голосов
/ 04 мая 2011

Если он находится в той же папке, то

Workbooks.Open("ObsReportExcelWorkbook.xlsx")

или

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

должны работать.Я только что попробовал оба в Excel VBA, с успехом.

0 голосов
/ 21 августа 2015

Открытая папка 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

Контекст: обычно ваши изменения в вашем проекте постоянно меняются, или у вас автоматически сгенерированная рабочая книга с динамическим именем.В любом случае.Он будет знать путь к вашей книге и спросит, хотите ли вы открыть эту конкретную папку.

Это было очень полезно для меня, когда я динамически сохранял кучу Excels программно в той же папке рабочей книги.Потому что вместо закрытия / сворачивания рабочей книги нужно перейти к проводнику.Я мог бы сосредоточиться на проекте и не потерять ход мыслей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...