我在 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 列(选择旁边)。