如何批量替换 Excel 单元格中嵌入单词的链接

如何批量替换 Excel 单元格中嵌入单词的链接

我有一个包含链接的单词列表。所有 URL 都包含重复的文本。我想批量替换此文本并将其替换为另一文本。目前,“全部替换”仅在单词之间搜索,而不搜索单词后面的嵌入超链接。

请帮忙。谢谢。

答案1

唯一的方法是使用宏:

Public Sub ReplaceHyperlinkURL(FindString As String, ReplaceString As String)
Dim LinkURL, PreStr, PostStr, NewURL As String
Dim FindPos, ReplaceLen, URLLen As Integer
Dim MyDoc As Worksheet
Dim MyCell As Range
On Error GoTo ErrHandler

Set MyDoc = ActiveSheet
For Each MyCell In MyDoc.UsedRange
If MyCell.Hyperlinks.Count > 0 Then
 LinkURL = MyCell(1).Hyperlinks(1).Address
 FindPos = InStr(1, LinkURL, FindString)
 If FindPos > 0 Then 'If FindString is found
  ReplaceLen = Len(FindString)
  URLLen = Len(LinkURL)
  PreStr = Mid(LinkURL, 1, FindPos - 1)
  PostStr = Mid(LinkURL, FindPos + ReplaceLen, URLLen)
  NewURL = PreStr & ReplaceString & PostStr
  MyCell(1).Hyperlinks(1).Address = NewURL 'Change the URL
  End If
 End If
Next MyCell
Exit Sub
ErrHandler:
MsgBox ("ReplaceHyperlinkURL error")
End Sub

ReplaceHyperlinkURL 代码必须放在 VBA 代码模块中。从电子表格中,按 Alt+F11 打开 VBA 编辑器。然后从菜单中选择插入 - 模块。复制代码并将其粘贴到模块中。然后保存模块。

为了运行该过程,请创建一个包含以下行的宏并在 Excel 中运行该宏。确保将 FindText 替换为要查找的地址部分,并将 ReplaceText 替换为要替换的文本。

调用 ReplaceHyperlinkURL("FindText", "ReplaceText")

来源

相关内容