
Ich versuche, ein Makro zu erstellen, um eine Massensuche und -ersetzung in mehreren Word-Dokumenten durchzuführen. Ich habe dieses im Internet gefunden und so geändert, dass es auch für Grafiken gilt. Allerdings erhalte ich immer wieder einen Laufzeitfehler (5174), der besagt, dass die Datei nicht gefunden werden konnte (obwohl sie sich definitiv im Ordner befindet).
Ich glaube, das Problem ist folgendes: support.microsoft.com/en-us/kb/212664, habe aber ein bisschen Probleme, es in mein Makro zu implementieren, da das einfache Hinzufügen von „.docx“ nach jedem einzelnen Fname nicht zu funktionieren scheint.
Ich habe nur begrenzte Erfahrung mit Makros, also entschuldigen Sie, wenn das eine Anfängerfrage ist.
Für jede Hilfe wäre ich sehr dankbar.
Danke.
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
Antwort1
Ich gehe davon aus, dass die aktuelle Instanz nicht weiß, was ChDir
Sie getan haben. Geben Sie beim Öffnen der Datei besser den vollständigen Pfad an:
' open the file
Documents.Open FileName:= Directory & "\" & FName
Ich verkette die Zeichenfolge in Directory
und FName
mit dem &
Operator.
Wenn also „ Directory
enthält C:\Users\pieria\Desktop\TempPics
“ und „ FName
enthält“ First.docx
mit &
Ihnen eine neue Zeichenfolge erstellenC:\Users\pieria\Desktop\TempPics\First.docx
Beachten Sie das \
„I“ zwischen dem Verzeichnisnamen und dem Dateinamen …