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

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

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

Любая помощь будет принята с благодарностью.

Благодарю.

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 ответ1

0

Я ожидаю, что текущий экземпляр не знает о 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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .