我正在尝试创建一个宏,以便在多个 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
我将字符串Directory
与FName
运算符连接起来&
。
因此,如果Directory
包含C:\Users\pieria\Desktop\TempPics
并FName
包含First.docx
您&
创建一个新的字符串C:\Users\pieria\Desktop\TempPics\First.docx
注意\
我在目录名和文件名之间添加了...