从Excel超链接中提取链接文本

时间:2016-05-02 08:54:13

标签: excel excel-vba vba

我有一个旧Excel表格中的超链接集合。我试图使用此功能从每个超链接中提取链接文本

  

函数GetURL(作为范围)作为字符串       On Error Resume Next       GetURL = rng.Hyperlinks(1).Address End Function

但是它不适用于旧的超链接(这些链接是可点击的并且它们可以工作)但是如果使用

插入新的超链接,则该功能可以正常工作
  

命令+ K

我在两种方式创建的链接之间看到的差异是

旧的超链接在公式栏中显示为

  

= HYPERLINK(" http://www.genome.jp/kegg-bin/show_pathway?ko00620+C00058"" ko00620&#34)

当我使用命令+ k插入超链接时,公式栏只显示链接名称。

如何从

中提取链接文本
  

= HYPERLINK(" http://www.genome.jp/kegg-bin/show_pathway?ko00620+C00058"," ko00620")使用宏,Excel VBA?

我看到另一个问题并回答here,但我不知道如何实现该功能。

1 个答案:

答案 0 :(得分:1)

在Excel工作表中写=HyperLinkText(A1)。根据需要提供单元格范围。您必须在模块中添加以下代码。

这与你在@RonRosenfeld提出的问题中提到的link的答案完全相同

Option Explicit
Function HyperLinkText(rg As Range)
    Dim sFormula As String, S As String
    Dim L As Long
    Dim H As Hyperlink, HS As Hyperlinks

sFormula = rg.Formula
L = InStr(1, sFormula, "HYPERLINK(""", vbBinaryCompare)

If L > 0 Then
    S = Mid(sFormula, L + 11)
    S = Left(S, InStr(S, """") - 1)
Else
    Set HS = rg.Worksheet.Hyperlinks
    For Each H In HS
        If H.Range = rg Then
            S = H.Address
        End If
    Next H
End If

HyperLinkText = S

End Function