批量查找和替换问题 - Microsoft Word 2013

批量查找和替换问题 - Microsoft Word 2013

我正在尝试创建一个宏,以便在多个 Word 文档中进行批量查找和替换。我在网上找到了这个宏,并对其进行了修改,使其也适用于图形,但是我一直收到运行时错误 (5174),提示找不到该文件(尽管它肯定在文件夹中)。

我认为问题是这样的:support.microsoft.com/en-us/kb/212664 但是在将它实现到我的宏中时遇到了一些麻烦,因为在每个 Fname 后简单地添加“ .docx”似乎不起作用。

我对宏的经验有限,因此如果这是一个新手问题,请原谅。

任何帮助将不胜感激。

谢谢。

Sub ReplaceText()
Dim Directory As String
Dim FType As String
Dim FName As String

Directory = "C:\Users\pieria\Desktop\TempPics"
FType = "*.docx"

ChDir Directory
FName = Dir(FType)
' for each file you find, run this loop
Do While FName <> ""
' open the file
Documents.Open FileName:=FName  '<--Error is supposedly here 

' search and replace the company name
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "CompanyA"
    .MatchCase = True
    .Replacement.Text = "CompanyB"
End With
Selection.Find.Execute Replace:=wdReplaceAll

' save and close the current document
ActiveDocument.Close wdSaveChanges

' look for next matching file
FName = Dir
Loop 
End Sub

答案1

我估计当前实例不知道ChDir你做了什么。打开文件时最好指定完整路径:

 ' open the file
 Documents.Open FileName:= Directory & "\" & FName 

我将字符串DirectoryFName运算符连接起来&

因此,如果Directory包含C:\Users\pieria\Desktop\TempPicsFName包含First.docx&创建一个新的字符串C:\Users\pieria\Desktop\TempPics\First.docx

注意\我在目录名和文件名之间添加了...

相关内容