본문 바로가기
카테고리 없음

vba 특정경로파일 탐색 후 복사

by 팁텍북 2024. 7. 5.

Sub CopyFilesContainingString(sourceFolder As String, targetFolder As String, searchString As String)
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    ' 대상 폴더가 존재하지 않으면 생성
    If Not fso.FolderExists(targetFolder) Then fso.CreateFolder(targetFolder)
    
    ' 폴더 탐색 및 파일 복사
    SearchAndCopyFiles fso.GetFolder(sourceFolder), searchString, targetFolder, fso
    
    MsgBox "파일 복사가 완료되었습니다!"
End Sub

Sub SearchAndCopyFiles(folder As Object, searchString As String, targetFolder As String, fso As Object)
    Dim file As Object, subFolder As Object
    
    ' 현재 폴더의 파일 탐색 및 복사
    For Each file In folder.Files
        If InStr(file.Name, searchString) > 0 Then file.Copy fso.BuildPath(targetFolder, file.Name), True
    Next
    
    ' 하위 폴더 탐색 (재귀 호출)
    For Each subFolder In folder.SubFolders
        SearchAndCopyFiles subFolder, searchString, targetFolder, fso
    Next
End Sub

Sub ExecuteCopy()
    ' 초기 설정
    CopyFilesContainingString "C:\abc", "C:\bbc", "특정 문자열" ' 여기에 찾고자 하는 문자열을 입력하세요
End Sub

댓글