특정폴더 내의 파일에 대한 작업
요구
- 지정한 폴더 안의 파일에 대하여 열어서 작업을 하는 매크로
- 폴더에 파일을 몰아놓고 특정한 작업을 반복하기 위함.
상황
- dropbox 폴더 안에 test1.xlsx, test2.xlsx, web\ (폴더) 가 위치함.
- 파일과 폴더 목록을 츨력해 봄
설명
- Dir(filename) 을 하면 filename과 일차하는 파일 중 가장 먼저 있는 파일의 이름을 출력함.
- 와일드 카드를 쓸 수 있음.
- 이후 Dir()명령으로 그 다음 파일의 이름을 출력함.
- 없을 경우 빈문자열 출력
- 옵션을 통해 폴더, 숨김파일 등을 찾을 수 있음.
- 현재 폴더 안에 test1.xlsx, test2, web(폴더)가 있음.
Sub dir_test()
Dim filename As String
filename = "C:\Users\nck\Dropbox\"
Debug.Print Dir(filename & "*.xlsm") 'filelist.xlsm
Debug.Print Dir(filename & "*.xlsx") 'test1.xlsx
Debug.Print Dir() 'test2.xlsx
Debug.Print Dir() '빈문자열
Debug.Print Dir(filename & "web", vbDirectory) 'web
End Sub
https://my-history.tistory.com/97
Sub ProcessFiles()
Application.DisplayAlerts = False '경고 메시지 표시하지 않기
Dim Filename, Pathname As String
Dim wb As Workbook
Pathname = "D:\FolderName\"
Filename = Dir(Pathname & "*.xlsx")
Do While Filename <> ""
Set wb = Workbooks.Open(Pathname & Filename)
DoWork wb
wb.Close SaveChanges:=True '작업 파일, 작업 후 저장. 저장하지 않을 경우 False
Filename = Dir()
Loop
Application.DisplayAlerts = True '경고 메시지 표시하기
End Sub
Sub DoWork(wb As Workbook) 'DoWork 에서 매개변수 WorkBook(엑셀파일) 을 가져와서 작업 수행
Dim raw_sht As Worksheet
Dim xWs As Worksheet
Dim i, j As Integer
With wb
'반복할 작업을 이곳에 넣는다.!
End With
End Sub
Leave a Comment