我正在尝试查找命令并更正编码以打开包含活动excel文件的相对文件路径的PDF文件。下面的代码可以很好地作为直接链接到文件的链接。但是,我只需要这段代码就可以找到与打开的excel文件位于同一文件中的PDF文件并相应地打开。
Sub OpeningPDF()
'ThisWorkbook.FollowHyperlink "C:\Users\Michael\My Documents\totals\copy.pdf"
End Sub
我尝试过与ThisWorkbook.path
合作,但我没有尝试过任何有效或似乎过时的内容。对此事的任何帮助都将不胜感激。
答案 0 :(得分:0)
我找到了两个解决方案:
The first one正在使用内置的 $userchild->setAttributes($rows, TRUE);
功能。这应该自动解析相对路径(相对于应用程序当前工作目录):
Shell()
The second one使用Public Sub StartExeWithArgument()
Dim strFilename As String
strFilename = "../folder/file.pdf"
Call Shell(strFilename, vbNormalFocus)
End Sub
COM对象,基本上与第一个对象相同。
Shell.Application
答案 1 :(得分:0)
如果您从ThisWorkbook.Path
和相对参考开始,然后在相对参考中为每"..\"
修剪一个图层,您将获得路径。
Function RelativeToAbsolutePath(ByVal RelativePath As String) AS String
Dim TempStart AS String, TempEnd AS String
TempStart = ThisWorkbook.Path
TempEnd = RelativePath
If Left(TempEnd,1) = "\" Then TempEnd = Mid(TempEnd,1)
RelativeToAbsolutePath = ""
On Error GoTo FuncErr
While Left(TempEnd,3)="..\" AND InStrRev(TempStart,"\")>0
TempStart = Left(TempStart,InStrRev(TempStart,"\")-1) 'Remove 1 layer from Workbook path
TempEnd = Mid(TempEnd,4) 'Remove 1 instance of "..\"
Wend
RelativeToAbsolutePath = TempStart & "\" & TempEnd 'Stitch it all together
FuncErr: 'You may want a DIR(..) check to see if the file actually exists?
End Function
然后您可以使用Shell