希望有人在我的以下代码中提供帮助。我正在尝试打开宏工作簿当前所在的当前文件夹。在此示例中,它位于文件夹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
是否设置为正确的完整路径。
答案 0 :(得分:5)
将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
在文件名中保留空格。