excel VBA 엑셀파일 읽어와서 작업하기

취미생활/소스코드|2018.11.13 22:19
여러파일의 엑셀파일을 같은 작업 매크로 돌리는 스크립트

폴더구조는 아래와 같이 되있을때만 된다. 
빨간색의 경우는 에러발생함. 수정해서 써야된다. 

매크로파일
엑셀.xls
엑셀2.xls
폴더1
ㄴ 엑셀.xls
ㄴ 엑셀2.xls
ㄴ 엑셀3.xls
ㄴ 엑셀4.xls
폴더2
ㄴ 엑셀1.xls
ㄴ 엑셀2.xls
ㄴ 엑셀3.xls
ㄴ 엑셀4.xls
ㄴ 폴더3
    ㄴ엑셀.xls
빈폴더

 

Sub ProcessFiles()
    Application.DisplayAlerts = False ' 경고 메시지 표시하지 않기
    Dim Filename, Pathname As String
    Pathname = ActiveWorkbook.Path ' 현재폴더 경로
            
    Set C = GetFoldersIn(Pathname & "\")
    
    For Each F In C
        If (F <> "." And F <> "..") Then
            DoDir Pathname & "\" & F
        ElseIf F = "." Then
            DoDir Pathname
        End If
        Rem Debug.Print Filename
    Next F
End Sub

Sub DoDir(Pathname As String)
    Dim wb As Workbook
    Dim Filename As String
    Filename = dir(Pathname & "\" & "*.xls") ' 확장자 xls (근데 안되는거같기도)
    Do
        If Filename <> "현재파일이름" Then '해당파일은 포함안함
            Set wb = Workbooks.Open(Pathname & "\" & Filename)
            DoWork wb
            wb.Close SaveChanges:=True ' 작업 파일,  작업 후 저장. 저장하지 않을 경우 False
        End If
               
        Filename = dir()
    Loop Until Filename = "" ' filename이 공백일경우 멈춤
End Sub

Sub DoWork(wb As Workbook)
    Debug.Print ("작업영역")
End Sub

Function GetFoldersIn(Folder As String) As Collection
  Dim F As String
  Set GetFoldersIn = New Collection
  F = dir(Folder & "\*", vbDirectory)
  Do While F <> ""
    If GetAttr(Folder & "\" & F) And vbDirectory Then GetFoldersIn.Add F
    F = dir
  Loop
End Function

 

태그 : vb, VBA

댓글(0)

엑셀 VBA 해당열 찾기

취미생활/소스코드|2018.11.13 22:18

엑셀 VBA 해당열 찾기

Set col = wb.Sheets("Sheet1").Range("A:A").Find("검색어") //시작위치
addr = col.Address //$A$13

 

태그 : vb, VBA, 엑셀

댓글(0)

엑셀 VBA 컨트롤 + ↓ 기능

취미생활/소스코드|2018.11.13 22:16
엑셀 VBA 컨트롤 + ↓ 기능

 

Set col = wb.Sheets("Sheet1").Range("AD:AD").Find("검색어") //시작위치
Set end = strCol.End(xlDown).Columns // 컨트롤 + ↓ 기능

 

태그 : vb, VBA, 엑셀

댓글(0)

엑셀 VBA 컬럼위치 찾기

취미생활/소스코드|2018.11.13 22:08
Set col = wb.Sheets("Sheet1").Range("A:A").Find("검색어")

 

 

태그 : vb, VBA, 엑셀

댓글(0)