使用VBA在Excel中打开多个链接

时间:2017-11-13 09:40:42

标签: excel vba

我有以下代码可以一次打开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"),它们可以独立使用。

1 个答案:

答案 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

我必须调整该示例中的代码,以便在从公式文本中提取网址时不包含引号。