VBA, чтобы открыть папку, используя путь - PullRequest
0 голосов
/ 07 ноября 2018

Надеюсь, если кто-то сможет помочь в моем коде ниже. Я пытаюсь открыть текущую папку, в которой в настоящий момент находится книга макроса. В этом примере он находится в папке H:\Projects\IWA_Populate. Однако при запуске книга может находиться в любой папке.

Если указать статический путь, как показано ниже, он работает и открывается в целевую папку IWA_Populate:

Shell "explorer.exe H:\Projects\IWA_Populate", vbNormalFocus

Однако я хотел заменить вышеуказанный путь на переменную, так как ниже она только открывает папку «Мои документы».

Shell "explorer.exe file_path", vbNormalFocus

Вот мой код, который я должен инициализировать file_path:

Public file_path As String
Public xl As Excel.Application
Set xl = Application: xl.DisplayAlerts = False
ActiveWorkbook.Save
file_path = xl.ActiveWorkbook.Path
'Shell "explorer.exe H:\Projects\IWA_Populate", vbNormalFocus
Shell "explorer.exe file_path", vbNormalFocus
MsgBox file_path

Окно сообщения должно проверить, что для file_path задан правильный полный путь.

1 Ответ

0 голосов
/ 07 ноября 2018

Переместите file_path за пределы кавычек и используйте амперсанд &. Хотя он находится внутри кавычек, он больше не является переменной file_path, а String литерал "file_path".

Изменение:

Shell "explorer.exe file_path", vbNormalFocus

до

Shell "explorer.exe " & file_path, vbNormalFocus

РЕДАКТИРОВАТЬ : Как указывало @TimWilliams, вы можете настроить его на

Shell "explorer.exe """ & file_path & """", vbNormalFocus

для разрешения пробелов в имени файла.

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