Проблема массового поиска и замены - Microsoft Word 2013

Проблема массового поиска и замены - Microsoft Word 2013

Я пытаюсь создать макрос для массового поиска и замены в нескольких документах Word. Я нашел его в сети и изменил его, чтобы он также применялся к графикам, однако я продолжаю получать ошибку времени выполнения (5174), сообщающую, что файл не найден (хотя он определенно находится в папке).

Я полагаю, что проблема в следующем: support.microsoft.com/en-us/kb/212664, но у меня возникли некоторые трудности с реализацией этого в моем макросе, поскольку простое добавление «.docx» после каждого отдельного Fname, похоже, не работает.

У меня ограниченный опыт работы с макросами, поэтому прошу прощения, если это вопрос новичка.

Любая помощь будет высоко оценена.

Спасибо.

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

Обратите внимание на букву \«I» между именем каталога и именем файла...

Связанный контент