将 Excel 超链接中的单元格引用转换为引用单元格中的文本

将 Excel 超链接中的单元格引用转换为引用单元格中的文本

我在 Excel 中有一列裸 URL。假设它是 A 列。我想用友好的文本链接替换每个 URL,例如“此处”。假设 A1 包含链接https://www.website.com/content/12345

然后我知道我可以在 A 列旁边创建一个新列,并在 B1 中输入此公式:=HYPERLINK(A1,"here")。然后单元格 B1 将包含文本链接here,它将转到https://www.website.com/content/12345

但是,我想在获得整洁的 B 列后删除 A 列。或者说我想将整洁的 B 列复制到另一个电子表格中。如果我执行上述任何一项操作,B 列中的链接将停止工作。我尝试过将其粘贴为值,但​​这样做只会使每个单元格读取here时没有链接。因此,我需要获取HYPERLINK函数中的每个单元格引用并将其转换为它引用的单元格中的文本。例如,我需要运行一个函数,该函数获取公式=HYPERLINK(A1,"here")并将其转换为=HYPERLINK(https://www.website.com/content/12345,"here")

有没有办法做到这一点?

答案1

完成这项工作的两个宏观建议:

Sub ReplaceRef()
    Dim rng As Range, prec As Range
    Application.Calculation = xlCalculationManual
    For Each rng In Selection
        On Error Resume Next
        Set prec = rng.DirectPrecedents
        On Error GoTo 0
        If Not prec Is Nothing Then
            rng.Formula = Replace(rng.Formula, prec.Address(0, 0), _
                """" & prec.Value & """")
        End If
    Next rng
    Application.Calculation = xlCalculationAutomatic
End Sub

Sub AddHyperFun()
    Dim rng As Range
    Application.Calculation = xlCalculationManual
    For Each rng In Selection
        rng.Next.Formula = "=HYPERLINK(""" & rng.Value & """,""here"")"
    Next rng
    Application.Calculation = xlCalculationAutomatic
End Sub

在第一个宏中,您应该选择 B 列中具有 HYPERLINK 功能的单元格。然后宏将用它们的值替换对 A 列的引用。

对于第二个宏,您应该选择 A 列中的链接。宏将添加超链接功能并将结果放在 B 列(选择旁边)。

相关内容