
Estoy intentando crear una macro para realizar una búsqueda y reemplazo masivo en varios documentos de Word. Encontré este en la red y lo modifiqué para que también se aplique a los gráficos, sin embargo, sigo recibiendo un error de tiempo de ejecución (5174) que dice que no se pudo encontrar el archivo (aunque definitivamente está en la carpeta).
Creo que el problema es este: support.microsoft.com/en-us/kb/212664 pero tengo algunos problemas para implementarlo en mi Macro, ya que simplemente agregar ".docx" después de cada Fname no parece funcionar.
Tengo experiencia limitada con macros, así que me disculpo si es una pregunta para principiantes.
Cualquier ayuda sería muy apreciada.
Gracias.
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
Respuesta1
Espero que la instancia actual no se dé cuenta de lo ChDir
que usted hizo. Será mejor que especifique la ruta completa al abrir el archivo:
' open the file
Documents.Open FileName:= Directory & "\" & FName
Concateno la cadena en Directory
y FName
con el &
operador.
Entonces, si Directory
contiene C:\Users\pieria\Desktop\TempPics
y FName
contiene First.docx
contigo &
, crea una nueva cadena.C:\Users\pieria\Desktop\TempPics\First.docx
Observe lo \
que agregué entre el nombre del directorio y el nombre del archivo...