我正在尝试编写一个vba word宏来搜索所有打开的文档,查找所有出现的文本“DocumentEnd9999”,并删除每个文档中该文本下面的所有内容。
Sub deletion()
Dim endTerm As String
endTerm = "DocumentEnd9999"
'Loop Dim
Dim n, c As Integer
n = Application.Documents.Count
For c = 1 To n
Set myRange = Application.Documents(c).StoryRanges
For Each myRange In ActiveDocument.StoryRanges
Selection.Find.ClearFormatting
With Selection.Find
.Text = endTerm
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
End With
Selection.Find.Execute
Selection.Extend
Selection.Find.ClearFormatting
With myRange.Find
myRange.Characters.Last.Select
.Forward = True
.Wrap = wdFindAsk
End With
Application.DisplayAlerts = False
Selection.Find.Execute
Selection.Delete
Next myRange
Next c
End Sub
答案 0 :(得分:0)
以下代码应该在文档的主体中执行您要查找的内容。不确定你为什么使用StoryRanges。我对这个系列并不太熟悉,所以我没有把它包括在内。
Sub deletion()
Dim endTerm As String
endTerm = "DocumentEnd9999"
Dim n, c As Integer
n = Application.Documents.Count
c = 1
Dim r As Range
Windows(c).Activate
Selection.Find.ClearFormatting
With Selection.Find
.Text = endTerm
.Forward = True
.Wrap = wdFindContinue
End With
Do
Selection.Find.Execute
Set r = ActiveDocument.Range(Selection.Range.Start, ActiveDocument.Content.End)
r.Delete
c = c + 1
On Error Resume Next
Windows(c).Activate
Loop Until c > n
End Sub