[英]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.