모든 하위 폴더 내의 최신 파일 하나만을 특정 폴더로 복사하려 합니다

VBA
작성자
너의나라
작성일
2021-12-02 16:49
조회
164
엑셀버전 : M365

운영체제 : 윈도우10

안녕하세요.

다들 그러하시겠지만, 시간은 없고 처리해야 해야 하는 일은 너무 방대하여

이렇게 급하게 도움을 요청 드려 봅니다.

아래와 같이 해당 폴더에는 많은 폴더들이 존재하고 있습니다.

각각의 폴더 안에는 아래와 같이 엑셀 파일들이 있는데요.

보시는 것처럼, 파일명은 폴더명과 동일하면서 뒷쪽은 "-생성일자"입니다.

vba를 이용하여 해당 폴더 내에 있는 모든 하위 폴더에서

"생성일자"가 최신인 파일들만 골라서 특정 폴더로 복사하기를 원합니다.

 

결론적으로 해당 폴더 안에 200개의 하위 폴더가 있다면,

vba를 이용하여  모든 하위 폴더에서 제일 최근에 생성된 파일 1개씩만 특정 폴더로 복사하려는 것입니다.

결국 특정 폴더에 모든 제품의 최신 파일을 복사해 오기 위함입니다.

 

고수님들 계시면 도움을 구해 봅니다.

감사합니다.

 

 

 

전체 3

  • 2021-12-03 22:42
    Dim i As Long
    
    Sub ListFolderAndFile()
    
    Dim sPath As String '//InPutBox로 경로 지정
    Dim OFSO As Object
    Dim OFolder As Object
    
    ThisWorkbook.Worksheets(1).Range("A2:C" & ThisWorkbook.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
    
    i = 2
    sPath = InputBox("경로를 입력하시오", "하위의 모든 파일 추출")
    
    Set OFSO = CreateObject("Scripting.FileSystemObject") '//Microsoft Scripting Runtime활성화 코드
    Set OFolder = OFSO.GetFolder(sPath)
    Call Folder_List(OFolder)
    
    ThisWorkbook.Worksheets(1).Range("A:C").EntireColumn.AutoFit
    
    End Sub
    
    Sub Folder_List(OFolder As Object)
    
    Dim OFolderFolderList As Object
    Dim OFolderFolder As Object
    
    Call File_List(OFolder)
    
    Set OFolderFolderList = OFolder.SubFolders
    
    For Each OFolderFolder In OFolderFolderList
        Call Folder_List(OFolderFolder)
    Next OFolderFolder
    
    End Sub
    
    Sub File_List(OFolder As Object)
    
    Dim OFolderFileList As Object
    Dim OFolderFile As Object
    
    Set OFolderFileList = OFolder.Files
    
    For Each OFolderFile In OFolderFileList
        With ThisWorkbook.Worksheets(1)
            .Cells(i, 1).Value = OFolder.Path
            .Cells(i, 2).Value = OFolderFile.Name
            .Cells(i, 3).Value = OFolderFile.Type
        End With
        i = i + 1
    Next OFolderFile
    
    End Sub
    

     

    이게 제가 공부할 때 사용했던 폴더 내 하위폴더의 모든 파일을 읽어내는 메크로 입니다.

    이 메크로를 이해하면서 원리를 파악하시면 원하는 파일을 만드시는 것 까지도 가능할꺼라고 봅니다.

    Sub File_List(OFolder As Object)<- 이쪽 부분에서 최근 파일 리스트들을 새로운 배열에다가 Name만 담고 그 Name 들 중 최신것으로 갱신하는 식으로 매크로를 짜시면 될 듯 합니다.

    첨부파일 : 폴더내-파일추출-매크로.xlsm


    • 2021-12-10 09:00

      @iviolin**** 님 우선 이렇게 시간 내서 답글 달아주셔서 정말 감사 드립니다!

      제가 아직 vba에 대한 공부가 많이 부족해서 첨부해 주신 코드로 테스트한 결과는

      하위 폴더를 포함한 폴더 및 파일 리스트를 엑셀에 보여 주는 것으로 확인이 되던데요.

      제가 원하는 것은 하위 폴더에 있는 각각의 마지막(최신) 파일들을 특정 폴더로 모두 복사하는 것이었습니다.

      첨부해 주신 코드로 공부를 좀 더 해봐야 할 거 같습니다 ^^;

      즐거운 주말 보내세요~


      • 2021-12-11 21:13

        @너의나라 님 음... 간단하게말씀드리자면 폴더에서 하위폴더로 넘어가기 전 배열하나를 만들어서

        그 파일에다가 하위폴더의 엑셀파일의 리스트(이름,경로) 및 수정날짜를 받습니다.

        배열 하나에다가 Preserve redim 을 사용해서 계속 배열안에다가 넣되 3차원이상의 배열을 만드시는 것이 좋겠네요

        하나의 차원에는 경로를 또 다른 차원에는 수정날짜를 또 다른 경로에는 폴더의 개수를 카운팅하는 배열을 말이죠

        그런다음 For Each문을 돌려서 최신 목록파일 리스트만 전부 또 다른 하나의 배열에 경로를 집어넣어주시고

        그 배열을 또 For Each를 써서 Saveas로 저장하면 될 듯합니다.

        말로는 쉬운데 조금 시간이 걸릴 작업같네요 화이팅하세요^^


전체 5,151
번호 카테고리 제목 작성자 작성일 추천 조회
알림
하루 딱 "1분", 진짜 쓰는 엑셀 꿀팁 👉 "오빠두엑셀" 인스타그램 오픈! (28)
트로피 오빠두엑셀 | 2021.10.12 | 추천 22 | 조회 770
트로피 오빠두엑셀 2021.10.12 22 770
공지사항 공지사항
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (21)
오빠두엑셀 | 2021.10.28 | 추천 28 | 조회 2402
트로피 오빠두엑셀 2021.10.28 28 2402
26146 VBA
New 텍스트 1 행씩 자동입력 및 표 2개 합치는 방법 첨부파일 (1)
마운틴 | 02:38 | 추천 0 | 조회 17
마운틴 02:38 0 17
26144 함수/공식
New now()함수로 얻은 최초의 시간을 상수로 사용하고 싶습니다. (1)
SAFETY.RKTL | 01:09 | 추천 0 | 조회 17
SAFETY.RKTL 01:09 0 17
26143 VBA
New 엑셀 타이머 종료시 알림음 출력 가능한가요? 첨부파일 (1)
을지지뢰 | 00:59 | 추천 0 | 조회 16
을지지뢰 00:59 0 16
26141 함수/공식
New 다중 유효성검사 수식관련문의 첨부파일
hyun944@naver.com | 00:25 | 추천 1 | 조회 16
hyun944@naver.com 00:25 1 16
26135 함수/공식
New 필터 기능 대체 함수 첨부파일
sio**** | 2022.01.19 | 추천 -1 | 조회 23
sio**** 2022.01.19 -1 23
26126 VBA
New 엑셀 타이머 런타임 오류해결 좀 부탁드립니다. 첨부파일 (2) 답변완료
을지지뢰 | 2022.01.19 | 추천 0 | 조회 38
을지지뢰 2022.01.19 0 38
26122 함수/공식
New 불규칙한 숫자만큼 반복되는 데이터 입력 ,, 고수님들 도와주세요 ㅠ_ㅠ 첨부파일 (3)
응빙 | 2022.01.19 | 추천 0 | 조회 43
응빙 2022.01.19 0 43
26120 VBA
New 그림단추 구현 VBA 첨부파일 (3) 답변완료
007 | 2022.01.19 | 추천 0 | 조회 45
007 2022.01.19 0 45
26118 VBA
New VBA 고수 분들 보시면 제발 도와주세요. 첨부파일 (3)
new_hwan | 2022.01.19 | 추천 0 | 조회 45
new_hwan 2022.01.19 0 45
26113 기능/도구
New 자동필터 검색 누락 첨부파일 (6) 답변완료
김정열 | 2022.01.19 | 추천 0 | 조회 41
김정열 2022.01.19 0 41
26105 함수/공식
New "월"을 기입하면 전월 당월 매출이 나오게 하고싶은데 도와주세요 ㅠ (10) 답변완료
따뜻한아메리카노 | 2022.01.19 | 추천 0 | 조회 55
따뜻한아메리카노 2022.01.19 0 55
26104 VBA
New 자료찾기 vba 문의드립니다. (5) 답변완료
ㅈㄱㄹ | 2022.01.19 | 추천 0 | 조회 43
ㅈㄱㄹ 2022.01.19 0 43
26089 기능/도구
New 한 시트에 다수의 규칙이 적용되어있을 때 항목을 정리하는 방법을 찾고 있습니다. 첨부파일 (6) 답변완료
피단 | 2022.01.18 | 추천 0 | 조회 44
피단 2022.01.18 0 44
26087 함수/공식
New vlookup 관련? 같은 값일 때 그 행의 값을 불러오기 첨부파일 (3) 답변완료
키몽쓰 | 2022.01.18 | 추천 0 | 조회 70
키몽쓰 2022.01.18 0 70
26085 함수/공식
New 엑셀 함수 궁금해요! 첨부파일 (3)
양킴 | 2022.01.18 | 추천 0 | 조회 52
양킴 2022.01.18 0 52
26079 함수/공식
New 도와주세요 예전에 잠깐 본적이 있는 강의인데 못찾겠어요 (1)
딸기아빠 | 2022.01.18 | 추천 0 | 조회 38
딸기아빠 2022.01.18 0 38
26078 함수/공식
New sumif 오류 관련 첨부파일 (3)
논바닥 | 2022.01.18 | 추천 0 | 조회 37
논바닥 2022.01.18 0 37
26068 함수/공식
New 다른쉬트 값 불러 오기 (VLOOKUP 안될 시) 첨부파일 (3)
벗님들 | 2022.01.18 | 추천 -1 | 조회 67
벗님들 2022.01.18 -1 67
26067 함수/공식
New 도와주세요! 목록 별 수량 합산이 필요한데 가능한지 확인 부탁 드릴게요! 첨부파일 (10) 답변완료
monom | 2022.01.18 | 추천 0 | 조회 54
monom 2022.01.18 0 54
26058 기능/도구
New 자동필터 복사 범위 풀림 오류 (1)
허영진 | 2022.01.18 | 추천 0 | 조회 39
허영진 2022.01.18 0 39
26050 함수/공식
New 행과 열의 합의 함수를 알고 싶어요! (3)
Goldhajin | 2022.01.18 | 추천 1 | 조회 66
Goldhajin 2022.01.18 1 66
26041 VBA
New 일정시간이 지나면 MsgBOX로 알림창이 뜨게 하고싶습니다. (4) 답변완료
을지지뢰 | 2022.01.17 | 추천 0 | 조회 63
을지지뢰 2022.01.17 0 63
26035 함수/공식
New 특정날짜와 시간 고정해서 데이터 추출방법 도와주세요 (5)
박현욱 | 2022.01.17 | 추천 0 | 조회 48
박현욱 2022.01.17 0 48
26033 함수/공식
New 필터 함수를 인덱스 매치 함수로 변환하는 어려움 첨부파일 (4) 답변완료
미르 | 2022.01.17 | 추천 0 | 조회 41
미르 2022.01.17 0 41
26030 함수/공식
New 원본표에서 일정 조건의 내용을 추출하여 새로운 표에 자료 넣기 첨부파일 (2)
알면서 | 2022.01.17 | 추천 0 | 조회 39
알면서 2022.01.17 0 39
26029 기능/도구
New 필터에서 상하위 % 추출 안됨 오류 첨부파일 (3)
알면서 | 2022.01.17 | 추천 0 | 조회 26
알면서 2022.01.17 0 26
26026 함수/공식
New 한 셀에 입력된 문장 중 조건에 만족하는 문장 개수 함수 (5)
삐약이 | 2022.01.17 | 추천 0 | 조회 41
삐약이 2022.01.17 0 41
26025 기능/도구
New 셀 내용을 지우면 특정 셀 내용도 같이 삭제되는 기능? 첨부파일 (3) 답변완료
올리주인 | 2022.01.17 | 추천 1 | 조회 52
올리주인 2022.01.17 1 52
26023 VBA
New VBA 사용자정의폼 show 0 명령어 (1) 답변완료
병욱 | 2022.01.17 | 추천 0 | 조회 42
병욱 2022.01.17 0 42
26022 VBA
New 거래처별 파일 나누기 첨부파일
silli**** | 2022.01.17 | 추천 0 | 조회 44
silli**** 2022.01.17 0 44