Word宏 - 从包含特定文本的所有链接中删除超链接

时间:2016-04-18 15:29:21

标签: vba ms-word word-vba

我想创建一个在Word文档中搜索所有超链接的宏。如果可见文本以http开头,那么我想删除链接(保留文本)。

示例:如果我的word文档中包含以下2个链接,则第一个链接将取消链接,但第二个链接将保留其链接。

http://www.google.com

Link to Google

我不知道如何从Field元素中提取文本值以便我可以进行比较。这就是我的宏目前的样子:

Sub RemoveHyperlinks()
  Dim oField As Field
  For Each oField In ActiveDocument.Fields
    If oField.Type = wdFieldHyperlink Then
      'If the text of oField begins with "http" then unlink
      oField.Unlink
    End If
  Next
  Set oField = Nothing
  End Sub

1 个答案:

答案 0 :(得分:2)

您可以使用Result属性获取字段的显示值:

Sub RemoveHyperlinks()
  Dim oField As Field
  For Each oField In ActiveDocument.Fields
    If oField.Type = wdFieldHyperlink Then
      If Left(oField.Result, 4) = "http" then
        oField.Unlink
      End If
    End If
  Next
  Set oField = Nothing
End Sub