【问题标题】:Extracting link texts from Excel Hyperlinks从 Excel 超链接中提取链接文本
【发布时间】:2016-08-26 23:45:45
【问题描述】:

我有一组来自旧 Excel 工作表的超链接。我正在尝试使用此功能从每个超链接中提取链接文本

函数 GetURL(rng As Range) As String 出错时继续下一步 GetURL = rng.Hyperlinks(1).Address 结束函数

但它不适用于旧的超链接(这些链接是可点击的并且它们有效)但是如果使用插入新的超链接,该功能将起作用

命令+k

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

旧的超链接在编辑栏中显示为

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

当我使用 command+k 插入超链接时,编辑栏只显示链接名称。

如何从

中提取链接文本

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

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

【问题讨论】:

  • 您提到的链接中的函数HyperLinkText必须以与使用GetURL函数相同的方式使用。你能详细说明一下你是如何使用函数GetURL的吗?
  • 如果您使用的是 Excel 2016,请查看 FORMULATEXT 函数。
  • Mrig,谢谢,我正在使用 Alt+f11 调出 VBA。然后插入 > 模块。将该函数复制并粘贴到模块中。稍后在 Excel 工作表中使用 =GetURL 作为函数。如果我对 HyperLinkText 使用相同的方法,我会调用什么作为用户定义的函数? @jkpieterse 谢谢,但我使用 Excel 2011。
  • @yathrakaaran - 只需写=HyperLinkText(A1)' in your sheet after adding the module HyperLinkText`,这就是你提到的链接中的答案。

标签: excel vba


【解决方案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

【讨论】:

  • 天哪!谢谢!你救了我的一天!非常感谢您花时间回答我的问题!这个解决方案就像一个魅力!
  • @yathrakaaran - 很高兴我能帮上忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
  • 2020-03-04
  • 2012-12-15
相关资源
最近更新 更多