
여러 단어 문서에서 대량 찾기 및 바꾸기를 수행하기 위해 매크로를 만들려고 합니다. 나는 이것을 인터넷에서 찾아 그래픽에도 적용하도록 변경했지만 파일을 찾을 수 없다는 런타임 오류(5174)가 계속 발생합니다(확실히 폴더에 있음에도 불구하고).
문제는 다음과 같습니다: support.microsoft.com/en-us/kb/212664 하지만 Fname이 작동하지 않는 것 같을 때마다 ".docx"를 추가하기만 하면 매크로에 구현하는 데 약간의 문제가 있습니다.
저는 매크로에 대한 경험이 제한되어 있으므로 초보 질문이라면 사과드립니다.
어떤 도움이라도 대단히 감사하겠습니다.
감사해요.
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
\
디렉토리 이름과 파일 이름 사이에 내가 추가한 것을 주목하세요 ...