我试图在 Word 文档中替换中间带有电子邮件地址的文本。如果我只使用“查找”命令,那么它就可以正常工作,Microsoft Word 会找到我想要替换的文本。
当我真正尝试进行替换时,问题出现了,然后 Word 神秘地告诉我找不到文本(相同的文本和相同的文档),因此不幸的是没有进行任何替换。
这是因为电子邮件地址被视为超链接。如果我删除超链接,它就可以正常工作,但这对我来说不是一个解决方案,因为我正在尝试制作一个供许多人使用的程序,默认情况下,Word 中会激活自动将电子邮件地址设置为超链接的选项。
有没有什么解决方法可以解决这个问题?我正在考虑其他选择,但如果可以使用 Word 的替换命令来完成,对我来说会容易得多。
信息:我在 Microsoft Office 2003 和 Microsoft Office 2013 中测试了这一点。它也不起作用,所以这不是版本相关的问题,而是所有版本的 Microsoft Word 的普遍问题。
答案1
您可以使用 VBA...
1)删除所有超链接(保留文本)。
Sub RemoveHyperlinks()
With ThisDocument
While .Hyperlinks.Count > 0
.Hyperlinks(1).Delete
Wend
End With
End Sub
2)进行搜索并替换......
3)重新创建所有超链接(如果用户启用了 Word 中的自动超链接选项):
Sub ReformatDocument()
Selection.WholeStory
Selection.Document.Kind = wdDocumentNotSpecified
Selection.Range.AutoFormat
End Sub
此外,如果您想启用或禁用自动超链接的实际自动更正选项,您可以使用“Application.Options.AutoFormatAsYouTypeReplaceHyperlinks”:
IE:Application.Options.AutoFormatAsYouTypeReplaceHyperlinks = False