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

标签 vba ms-word

我想创建一个宏来搜索 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

最佳答案

您可以使用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

关于vba - Word 宏 - 从包含特定文本的所有链接中删除超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36698336/

相关文章:

vba - 保存并转到新记录后如何重置表单的格式

excel - PowerPoint 链接对象的新驱动器映射 - VBA 解决方案

pdf - 用Sphinx索引Word文档和PDF

vba - 如何获取word 2003文档的模板路径

vba - VBA 代码的 HTML Tidy 吗?

vba - 单元格中的数据验证和组合框 - Workbook_SheetChange 事件不起作用

java - 在 Word 中配置内容控件以添加新行

vba - dotm 创建新文档 - 如何删除对模板的引用?

vba - 需要帮助更正嵌套在循环中的子例程中的 'with' 语句

vba - 字 VBA : Table cell range to text file