[英]Vba code is opening the word documents but it is not executing the Find-Replace function. Need some editing
Sub FindandReplace()
Dim wrd As Word.Application
Set wrd = CreateObject("word.application")
wrd.Visible = True
AppActivate wrd.Name
FName = Dir("C:\Users\user\Desktop\folderb\*.doc")
Do While (FName <> "")
With wrd
.Documents.Open ("C:\Users\user\Desktop\folderb\" & FName)
If .ActiveWindow.View.SplitSpecial = wdPaneNone Then
.ActiveWindow.ActivePane.View.Type = wdPrintView
Else
.ActiveWindow.View.Type = wdPrintView
End If
With Selection.Find
.Text = "Day 10"
.Replacement.Text = "Day 11"
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
With Selection.Find
.Text = "delta"
.Replacement.Text = "alpha"
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
With Selection.Find
.Text = "5.4.1"
.Replacement.Text = "5.6.0"
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
.ActiveDocument.Save
.ActiveDocument.Close
End With
FName = Dir
Loop
Set wrd = Nothing
End Sub
我正在尝试查找和替换“ folderb”中包含的十个不同的Word文档中的文本
但是问题是,一旦我运行此宏,文档就会一一打开,保存并退出。
查找和替换作业尚未完成!
请告诉我以上代码在哪里出错了。
任何帮助将由衷的感谢。
我认为您基本上缺少了在替换内容之前需要选择所有文本的部分。 因此,在第一次选择文件之前打开文件之后,需要选择该文档中的所有文本。 在你的情况下
.Documents.Open ("C:\Users\user\Desktop\folderb\" & FName)
If .ActiveWindow.View.SplitSpecial = wdPaneNone Then
.ActiveWindow.ActivePane.View.Type = wdPrintView
Else
.ActiveWindow.View.Type = wdPrintView
End If
ActiveDocument.Range(0, 0).Select
Selection.WholeStory
With Selection.Find
.Text = "Day 10"
.Replacement.Text = "Day 11"
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
End With
尝试和测试
Sub LoopDirectory()
Dim vDirectory As String
Dim oDoc As Document
vDirectory = "D:\test\"
vFile = Dir(vDirectory & "*.docx")
Do While vFile <> ""
Set oDoc = Documents.Open(FileName:=vDirectory & vFile)
With oDoc.Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchWildcards = False
.Text = "Day 10"
.Replacement.Text = "Day 11"
.Execute Replace:=wdReplaceAll
.Text = "delta"
.Replacement.Text = "alpha"
.Execute Replace:=wdReplaceAll
.Text = "5.4.1"
.Replacement.Text = "5.6.0"
.Execute Replace:=wdReplaceAll
End With
oDoc.Close SaveChanges:=True
vFile = Dir
Loop
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.