윈도우의 특정 폴더로 파일을 전체 Move 하기 위한 것이며, 다른 PC에서 작업한 사항을 반영하기 위해서 이미 Move된 것인지 파악하여 처리하는 코드이다.
Sub files_move()
Dim rngC, rngAll As Range
Dim oldName, newName As String
Dim k%, r%
Application.ScreenUpdating = False
Application.DisplayStatusBar = True
Set rngAll = Range([A2], Cells(Rows.Count, "A").End(3))
For Each rngC In rngAll
If InStr(Cells(rngC.Row, "A"), "원본") > 0 Then '// 원본 폴더로 되어 있으면
Application.StatusBar = rngC.Row & " 행 진행중"
oldName = Left(Cells(rngC.Row, "A"), Len(Cells(rngC.Row, "A")) - 3) & "\" & Cells(rngC.Row, "B")
newName = Cells(rngC.Row, "A") & "\" & Cells(rngC.Row, "B")
If Dir(oldName, vbDirectory) = "" Then '// 파일이 없다면
If Dir(newName, vbDirectory) <> Empty Then
Cells(rngC.Row, "C").Value = "Moved"
Cells(rngC.Row, "C").Interior.ColorIndex = 36
k = k + 1
End If
Else
If Dir(newName, vbDirectory) = Empty Then '// 원본폴더에 파일이 없다면
Name oldName As newName
Cells(rngC.Row, "C").Value = "Moved"
Cells(rngC.Row, "C").Interior.ColorIndex = 36
r = r + 1
Else
k = k + 1
Debug.Print rngC.Row & " 행은 이미 Moved 상태입니다"
End If
End If
End If
Next rngC
Application.StatusBar = r & " 건 Moved " & k & " Already Moved"
End Sub
'업무 능력 향상 > 엑셀 VBA 활용' 카테고리의 다른 글
[VBA] Sheet 를 각각의 파일명으로 분리하여 저장(기존 파일 유지) (2) | 2015.07.02 |
---|---|
[VBA] 파일 삭제 (0) | 2015.06.30 |
[VBA] mkdir 폴더 생성 (3) | 2015.06.29 |
[VBA] using wildcard in SQl string in VBA (0) | 2015.06.28 |
[VBA] 폴더에서 파일 리스트 가져오기 (0) | 2015.06.25 |