搜索包含超链接的文本时,Microsoft Word中的查找和替换错误?


3

我试图用Word文档中的电子邮件地址替换文本。如果我只使用查找命令,那么它工作正常,Microsoft Word找到我想要替换的文本。

在此输入图像描述

问题来自于我实际上尝试进行替换,然后神秘地Word告诉我无法找到文本(相同的文本和相同的文档),所以遗憾的是没有替换。

在此输入图像描述

这是因为电子邮件地址被视为超链接。如果我删除超链接,它工作得很好,但这对我来说不是一个解决方案,因为我正在尝试制作一个程序供许多人使用,默认情况下,选项自动生成电子邮件地址在Word中激活超链接。

有没有解决方法可以解决这个问题?我正在考虑其他选项但是如果可以使用Word的替换命令来完成这对我来说会容易得多。

有关信息:我在Microsoft Office 2003和Microsoft Office 2013中对此进行了测试。它也不起作用,因此它不是与版本相关的问题,而是对所有版本的Microsoft Word都是通用的。


你找不到工作了吗?我能想到的孩子唯一的选择就是为此写一个VBa ......
Dave


有没有办法在不搜索超链接和纯文本的混合的情况下进行特定的搜索和替换任务?从我的测试来看,如果您尝试单独替换超链接,则该问题不存在。
Excellll

我认为@ sunk818的评论结合MS Word的正则表达式给出了答案。
agtoever

1
错误提示不会出现,但如果您执行搜索并替换...电子邮件的可视文本会更改,但属性仍然是旧电子邮件。成功搜索并替换后将鼠标悬停在链接上,您仍然可以看到旧的电子邮件。
太阳

Answers:


2

你可以使用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”:

即: Application.Options.AutoFormatAsYouTypeReplaceHyperlinks = False


3
虽然有用,但我认为这是危险的代码(很遗憾,但是-1),因为我依赖于所有超链接都是自动超链接链接的假设。任何手动编辑或添加的超链接都将消失。这有时会发生,因为Word允许“超链接” 到文档中的其他文件或部分以及www超链接。解决方案可能是用一些代码替换现有超链接并查找/替换或重新分析文本,但这将需要更多(复杂)VBA。
agtoever

谢谢你的回答,这很有帮助。目前,在我找到另一个解决方案之前,我正在删除文档中的所有超链接,如果他想要使用我的程序则向用户请求权限。不幸的是,当@agtoever说我无法知道电子邮件地址是否在哪里链接(即使启用了自动套用格式选项),因为您可以手动删除超链接。agtoever,我不再重新调整,但我放弃了这个想法因为大文件很慢而且我的代码在计时器中运行...
Oscar Hermosilla

3
@agtoever你是对的,这是一个大锤的方法,并不是OP的完整解决方案和其他可能阅读它的人。;)“解决方案可能是用一些代码替换现有的超链接并查找/替换或重新分析文本,但这需要更多(复杂)VBA”请随意提供帮助OP的答案。
Ƭᴇcʜιᴇ00714年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.