특정폴더 내의 파일에 대한 작업

요구

  • 지정한 폴더 안의 파일에 대하여 열어서 작업을 하는 매크로
  • 폴더에 파일을 몰아놓고 특정한 작업을 반복하기 위함.

상황

  • dropbox 폴더 안에 test1.xlsx, test2.xlsx, web\ (폴더) 가 위치함.
  • 파일과 폴더 목록을 츨력해 봄

설명

MSDN Link

  • 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

Tags:

Updated:

Leave a Comment