在Word中,我想搜索@ yahoo.com的活动文档,并用newName@gmail.com替换所有实例。当我使用*@yahoo.com查找它时,替换命令会删除@ yahoo.com之前的所有文档
Sub kiffin()
With Selection.Find
.ClearFormatting
.MatchWildcards = True
.Text = "*@yahoo.com"
.Replacement.ClearFormatting
.Replacement.Text = "newName@gmail.com"
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
End Sub
答案 0 :(得分:0)
在这种情况下,通配符*
显然过于贪婪,而Word查找功能中可用的有限通配符/正则表达式支持可能不适合识别单个电子邮件地址。 (注意:Word,也不是RegEx是我的专业知识)。
如果Word文档中的电子邮件地址是作为超链接提供的,则可以通过循环Hyperlinks
集合并检查TextToDisplay
域"@yahoo.com"
来完成此操作。
Sub ReplaceEmailHyperlinks()
Dim newemail as String
Dim h As Hyperlink
newemail = "NewEmail@gmail.com"
For Each h In ActiveDocument.Hyperlinks
If h.TextToDisplay Like "*@yahoo.com" Then
h.TextToDisplay = newemail
h.Address = "mailto:" & newemail
End If
Next
End Sub