2013-03-06 4 views
2

EXCEL-VBA을 사용하여 다른 폴더에 폴더를 복사 할 수 있습니까?셀 기반 복사 폴더

여기 예를 들어 내가 D9의 예에서 V를 입력 한 후이 E의 폴더에 복사합니다 E3에서 대상 경로를 입력하면

enter image description here

: 대상에 내부의 파일을 함께 \ DATABASE2012Data2012을 폴더 F : \ Workdata

그래서 기본적으로 내가 E3에서 대상 경로를 입력하는 것입니다 필요 단지 또는/및/D9

에 D7에

가능이 작업을 수행하는 것입니다 V를 삽입 할 필요 210?

+0

+1 옵션의 – whytheq

답변

3

당신은 명령 인터프리터 XCOPY 명령을 사용하여이 올드 스쿨 스타일을 수행 할 수 있습니다

' VBA Code to open a command window and run XCOPY 
Shell Environ("comspec") & " /k xcopy " & Range("E9").text & " " & Range("F9").text & " /s /e /i" 

그래서 그 않는 것은 명령 창을 열고, 그리고 범위 E9에서 폴더를 복사 할 XCOPY 명령을 실행 F9에 지정된 새 디렉토리로 이동하십시오.

/K - 테스트를 위해 유용

/C를 - -이 열려 명령 창을 유지합니다가 완료 때이 명령 창을 닫습니다.

대안으로 Microsoft - XCOPY Switches

당신이 Ron De Bruin: VBA FileCopy

Ron De Bruin: VBA FolderCopy에 설명 된대로 엑셀 2010년부터 2013년까지 경우 FILECOPY를 사용하여 새 CopyFolder method를 사용할 수 수에 대한 자세한 당신이 XCOPY와 함께 사용할 수있는 다양한 스위치가있다

는 또 다른 옵션은 FILESYSTEMOBJECT - CopyFolder method 사용하는 것입니다 (예 : FileSystemObject.CopyFolder을 "C : \ 내 문서 \ 문자 *", "C : \ tempfolder \")

HTH

필립

+0

한 많은 좋은 질문 : 론 드 Bruin입니다 (전설) – whytheq

+0

와우 감사합니다 ...하지만 원본 폴더 \ 이후 그것은 (XCOPY 실 거예요 작업을 보인다 백 슬래시) (xcopy 잘못된 경로를 말하기) 디렉토리 이름 뒤에 all \을 제거해야하고 두 번째로 workdata 폴더 안에 Data2012 폴더를 만들지 마십시오 (Data2012 폴더 안에 파일과 하위 폴더 만 복사 함) ... 세 번째 여러 셀 범위를 지원하지 않는 것 F7 : F9 더 읽을 것입니다 Ron De Bruinand CopyFolder 메서드 thx –

+0

XCOPY 정보를 확인하고/s 스위치를 사용하면 빈 디렉터리가 복사되지 않습니다. 또한 경로에 공백이 있으면 C : \ documents를 입력하는 대신 "c : \ documents and settings"... –