2013-10-16 1 views
0

는이 코드가 있습니다엑셀 매크로 이동 파일 (수정 코드)

Sub MoveFiles() 
Dim d As String, ext, x 
Dim srcPath As String, destPath As String, srcFile As String 
srcPath = "C:\test\" 
destPath = "C:\test2\" 
ext = Array("*.csv", "*.xls") 
For Each x In ext 
d = Dir(srcPath & x) 
    Do While d <> "" 
     srcFile = srcPath & d 
     FileCopy srcFile, destPath & d 
     Kill srcFile 
     d = Dir 
    Loop 
Next 
End Sub 

을하지만 srcPath의 모든 하나의 파일을 삭제합니다. 나는 액티브 워크 북을 삭제하기 만하면된다. ive는 좋은 시간 동안이 코드에 대해 생각하고 그것을 반복하지 않고 어떻게해야 하는지를 이해할 수 없습니다. 그냥 다음 특정 파일을 죽일 이유는 반복의 모든 파일을 죽이는 루프를 사용하려면

내가이

+0

'activeworkbook.name을 삭제할 때만 필요합니다. 모든 사람이 아닌 activeworkbook.name을 삭제하면됩니다. '코드에서 코드를 실행하는 경우 어떻게하면 활성 워크 북을 삭제할 수 있습니까? –

+0

은 이미 다른 위치에 저장했기 때문에 방금 이름이 –

답변

0

에 어떤 도움을 주셔서 감사합니다?

특정 파일을 죽이고 싶어 경우 여전히 루프는 당신은 같은 "만약"절 뭔가 추가해야합니다

if srcFile = activewindow.name then 
    kill 
else 
    do nothing 
end if 

을 아니면 내가 당신이 잘못 했습니까?

+0

이 아니며 파일을 죽이는 것이 아니라고 지정했습니다. 그것의 첫번째에 관하여 지정된 폴더에 파일을 이동하고, 이전 폴더에서 파일을 삭제하십시오 –

+0

그것을 얻었다. 루프의 현재 반복에서 파일을 죽이는 대신 모든 파일을 죽입니다. – udigold

+0

코드를 시험해 보았습니다. 파일을 대상 폴더에 복사 한 다음 원본 경로에서 파일을 삭제합니다. 네가 죽이려고하는 게 뭐야? 활성 시트를 죽일 수는 없으며 열린 시트이기 때문에 보호됩니다. – udigold