在Microsoft Outlook宏中,我正在尝试使用Shell()调用来打开Excel电子表格(其文件路径由我的templatePath
变量引用)。我一直从编辑器中获取语法错误,并在执行时遇到“找不到文件”错误。
我从以下行开始:
Shell ("""C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE"" ""C:\Users\My_Username\Desktop\My_Folder\Request Template.xlsx"""), vbNormalFocus
它打开适当的文件就好了;我只是不知道使用templatePath
变量的正确语法,而不是硬编码电子表格的路径。我已经看到了类似的问题,但似乎没有一个问题足够贴合我的情况。任何帮助将不胜感激!
这应该工作:
Dim templatePath As String
templatePath = "C:\Users\My_Username\Desktop\My_Folder\RequestTemplate.xlsx"
Shell ("""C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE"" """ & templatePath & """"), vbNormalFocus
如果您的模板位于Application.TemplatesPath
中,并且您只想指定文件名,请使用:
templatePath = Application.TemplatesPath & "RequestTemplate.xlsx"
更可调的版本:
Dim templatePath As String
Dim programPath As String
Dim templateName As String
templateName = "RequestTemplate.xlsx"
templatePath = Application.TemplatesPath
programPath = "C:\Program Files (x86)\Microsoft Office\Office16\EXCEL.EXE"
Shell ("""" & programPath & """" & " " & """" & templatePath & templateName & """"), vbNormalFocus