我可以使用excel公式提取单元格中超链接的链接位置吗?

Gig*_*h57 76 hyperlink microsoft-excel

我有一个包含大量单元格的电子表格,其中包含显示文本与超链接位置不同的超链接

IE:

单元格位置:A1

显示文字 = "网站信息"

超链接位置 = " http://www.mylocation.com "

是否有允许我访问超链接位置的文本字符串的 excel 公式?

理想情况下,它看起来像这样:

公式(A1) = " http://www.mylocation.com "

小智 71

您可以使用宏:

  • 打开一个新的工作簿。
  • 进入 VBA(按 Alt+F11)
  • 插入一个新模块(插入 > 模块)
  • 复制并粘贴下面的 Excel 用户定义函数
  • 退出 VBA(按 Alt+Q)
  • 将此语法用于此自定义 Excel 函数:=GetURL(cell,[default_value])

     Function GetURL(cell As range, Optional default_value As Variant)
     'Lists the Hyperlink Address for a Given Cell
     'If cell does not contain a hyperlink, return default_value
          If (cell.range("A1").Hyperlinks.Count <> 1) Then
              GetURL = default_value
          Else
              GetURL = cell.range("A1").Hyperlinks(1).Address
          End If
    End Function
    
    Run Code Online (Sandbox Code Playgroud)

  • @igor 为什么你在 cell.range("A1").Hyperlinks.Count 和 cell.range("A1").Hyperlinks(1).Address 中使用 "range("a1") ?我已经复制了你的宏,但是把它拿出来 (--&gt;cell.hyperlinks.count 和 cell.hyperlinks(1).adress) 它工作得很好。我很好奇这里“范围(“a1”)的目的。 (5认同)
  • 如果您的超链接包含存储在“SubAddress”中的文档片段(例如“#something”),那么您需要连接“Address”、“#”和“SubAddress”。 (3认同)

Mat*_*ock 37

我只需要从单个单元格的值中提取地址,所以我发现这个小函数很方便:

除了“蛮力”宏,您还可以创建一个用户定义的函数,该函数将提取并返回指向它的任何超链接的 URL:

Function GetURL(rng As Range) As String
     On Error Resume Next
     GetURL = rng.Hyperlinks(1).Address 
End Function
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以将其放置在您想要的位置。例如,如果您希望将 A1 中超链接的 URL 列在单元格 C25 中,则在单元格 C25 中输入以下公式:

=GetURL(A1)

http://excel.tips.net/T003281_Extracting_URLs_from_Hyperlinks.html

  • 奇迹般有效!将此代码段放置在 Excel 文件(不仅仅是工作表)的 VBA 中的新“模块”中。 (2认同)
  • @SAL 请参阅下面答案中 gilly3 的评论。我还用代码添加了答案。 (2认同)