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

我有一个旧的Excel工作表的超链接的集合。 我正在尝试使用此function从每个超链接中提取链接文本

Function GetURL(rng As Range)As String On Error Resume Next GetURL = rng.Hyperlinks(1).Address End Function

但它不适用于旧的超链接(这些链接是可点击的,他们工作),但是,如果新的超链接插入

命令+ K

我在两种方式创build的链接之间的差异是

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

= HYPERLINK(“ http://www.genome.jp/kegg-bin/show_pathway?ko00620+C00058 ”,“ko00620”)

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

我如何从中提取链接文本?

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

我在这里看到另一个问题和答案,但我不知道如何实现该function。

在您的Excel表格中写入=HyperLinkText(A1) 。 根据需要给出单元格范围。 你将不得不在模块中添加下面的代码。

这与你在@RonRosenfeld提出的问题中提到的链接完全相同

 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