
Estou tentando criar uma macro para localizar e substituir em massa vários documentos do Word. Encontrei este na rede e alterei-o para aplicar também a gráficos, mas continuo recebendo um erro de tempo de execução (5174) dizendo que o arquivo não foi encontrado (mesmo que esteja definitivamente na pasta).
Acredito que o problema seja este: support.microsoft.com/en-us/kb/212664, mas estou tendo alguns problemas para implementá-lo em minha macro, simplesmente adicionando ".docx" após cada Fname não parecer funcionar.
Tenho experiência limitada com macros, então peço desculpas se esta for uma pergunta para iniciantes.
Qualquer ajuda seria muito apreciada.
Obrigado.
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
Responder1
Espero que a instância atual não esteja ciente do que ChDir
você fez. É melhor especificar o caminho completo ao abrir o arquivo:
' open the file
Documents.Open FileName:= Directory & "\" & FName
Eu concateno a string dentro Directory
e FName
com o &
operador.
Então se Directory
contém C:\Users\pieria\Desktop\TempPics
e FName
contém First.docx
com &
você crie uma nova stringC:\Users\pieria\Desktop\TempPics\First.docx
Observe o \
que adicionei entre o nome do diretório e o nome do arquivo...