Vba 搜索word文档并删除找到的文本
尝试通过excel VBA搜索word文档并删除找到的文本:Vba 搜索word文档并删除找到的文本,vba,excel,ms-word,Vba,Excel,Ms Word,尝试通过excel VBA搜索word文档并删除找到的文本: Set objWord = CreateObject("Word.Application") objWord.Visible = True path = "C:\Test.docx" txt1 = "Search text" Set objDoc = objWord.Documents.Open(path) With objWord.ActiveDocument Set
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
path = "C:\Test.docx"
txt1 = "Search text"
Set objDoc = objWord.Documents.Open(path)
With objWord.ActiveDocument
Set myRange = .Content
With myRange.Find
.Text = txt1
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Execute
Selection.Delete
End With
End With
但是,它似乎没有删除文本
任何帮助,请选择。删除操作非常有效-它会删除所选文本。在您的情况下,您没有选择任何内容,因此不会删除任何内容 尝试按如下方式执行替换:
Set objDoc = objWord.Documents.Open(path)
With objDoc.Content.Find
.Text = txt1
.Replacement.Text = ""
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll, Forward:=True
End With
维蒂亚塔说的话。。。如果您正在执行
objWord.Selection.Find
(我不建议这样做),那么Selection.Delete
应该可以工作,只要Find
成功,否则会删除其他内容myRange.Delete也可以,只要您测试Find.Execute
是否返回True。所以总的来说,维蒂亚塔的建议是最好的办法。@Cindymister你能举一个删除的例子吗?看你对维蒂亚塔的评论:你说的“线”是什么意思?空段落?您搜索的内容位于它自己的段落中,删除它会留下该段落吗?然后尝试searchigtxt1&^p
@Cindymister是的,就是这样,它会留下段落。你的修复成功了-谢谢!!不幸的是,我什么也没做。我在网上找到了一个解决方案,它使用:With objWord.ActiveDocument Set myRange=.Content With myRange.Find.Execute FindText:=txt1,replacetwith:=“”,Replace:=1。Execute FindText:=txt2,replacetwith:=“”,Replace:=1 End With End With,但是在替换文本时它会留下一行-我需要将其删除,因为该行会在我的流程中的稍后部分打乱流程