【发布时间】:2019-04-15 16:07:57
【问题描述】:
我有一个 Excel 文件。在第一张表中有多行超链接(相对文件路径 = 文件位于 excel 文件旁边)。
在 VBA 中,我将获取包含超链接的单元格。如何在 VBA 中打开后跟超链接的文件?其实我想打开超链接(实际打开文件)
【问题讨论】:
-
超链接是嵌入还是通过=Hyperlink()函数实现的??
-
是这样实现的:=Hyperlink()
我有一个 Excel 文件。在第一张表中有多行超链接(相对文件路径 = 文件位于 excel 文件旁边)。
在 VBA 中,我将获取包含超链接的单元格。如何在 VBA 中打开后跟超链接的文件?其实我想打开超链接(实际打开文件)
【问题讨论】:
【讨论】:
正如我对 Gary 的回答所评论的,ActiveWorkbook.FollowHyperlink 方法有效,但如果您的网站需要登录,它会在您每次打开链接时询问您的凭据。
如果您想打开一个网站并保存您的凭据,您可以使用这个其他功能:
Sub OpenHyperlink(ByVal link As String)
'Escape chars that cmd.exe uses
link = Replace(link, "^", "^^")
link = Replace(link, "|", "^|")
link = Replace(link, "&", "^&")
'Open default web browser
Shell "CMD.EXE /C START " & link, vbHide
End Sub
【讨论】:
看看Hyperlink对象引用:
https://msdn.microsoft.com/en-us/library/office/ff835563.aspx
您应该能够使用.Follow 方法打开文件,或者如果这不起作用,您可以随时获取.Address 属性并将其传递给Workbooks.Open 方法。
还将Excel Object Model Reference 加入书签以备将来使用:)
不过,我认为这不适用于公式超链接,所以如果这是您的情况,那么请改为:
Sub h()
Dim cl As Range
Dim h As String
Set cl = Range("E13") 'Modify to the cell containing your =HYPERLINK formula
h = Replace(cl.Formula, "=HYPERLINK(", "")
h = Replace(h, ")", "")
h = Replace(h, Chr(34), "")
h = Split(h, ",")(0)
Dim wb As Workbook
Set wb = Workbooks.Open(h)
End Sub
【讨论】: