我有以下代码可以一次打开excel中的多个链接
Sub OpenLink()
Dim xHyperlink As Hyperlink
Dim WorkRng As Range
On Error Resume Next
xTitleId = "Select Area"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each xHyperlink In WorkRng.Hyperlinks
xHyperlink.Follow
Next
End Sub
然而,它不起作用,我无法理解为什么。
我的链接格式为=HYPERLINK("http://example.com"; "Wording")
,它们可以独立使用。
答案 0 :(得分:0)
我相信这不起作用,因为您正在使用超链接功能(而不是右键单击>超链接..)
您可以通过右键单击指定单元格的超链接并在那里测试代码来证明这是问题。
您是从其他单元格获取链接地址吗?如果是这样你可以直接在那里使用ActiveWorkbook.FollowHyperlink
打开链接,或者你可以使用这样的技术从公式中读取超链接值:
https://stackoverflow.com/a/42564907/359135
一些工作(希望)代码从公式中提取url并打开它:
Sub OpenLinks()
Dim xHyperlink As Hyperlink
Dim WorkRng As Range
On Error Resume Next
xTitleId = "Select Area"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each c In WorkRng.Cells
Dim sFormula As String
Dim l As String
sFormula = c.Formula
l = Mid(sFormula, WorksheetFunction.Search("""", sFormula) + 1, WorksheetFunction.Search(",", sFormula) - WorksheetFunction.Search("""", sFormula) - 2)
ActiveWorkbook.FollowHyperlink l
Next
End Sub
我必须调整该示例中的代码,以便在从公式文本中提取网址时不包含引号。