我有一个Excel 2007模板,我想让其他人能够使用。作为代码的一部分,我需要知道模板最初所在的位置,因为根据用户放置模板的位置,位置可能会有所不同。当从模板创建新工作簿时,它在ActiveWorkBook.Path值中没有任何值,在将其保存到某处之前不会填充此值。
有没有办法确定创建工作簿的模板的路径?
答案 0 :(得分:0)
如果模板具有唯一名称,并且您知道它存储在哪个驱动器上,则可以使用以下内容:
Function GetTemplatePath(drive As String, templateName As String) As String
Dim cmd As String, result As String
cmd = "CMD /C DIR """ & drive & ":\*" & templateName & """ /S /B /A:-D"
On Error Resume Next
result = Split(CreateObject("WScript.Shell").Exec(cmd).StdOut.ReadAll, vbCrLf)(0)
On Error GoTo 0
If InStr(result, "\") Then
GetTemplatePath = Left(result, InStrRev(result, "\"))
Else
GetTemplatePath = vbNullString
End If
End Function
你会像这样使用它:
Dim filePath As String
filePath = GetTemplatePath("C", "MyTemplate.xltx")
Debug.Print filePath