TOP

다양한 파일에서 데이터를 수집하기 위한 스파이더 매크로 Excel

YouLibreCalc for Excel logo

설명

이 문서에서는 여러 통합 문서에서 데이터를 검색하고 선택한 정보를 별도의 보고서 파일에 기록할 수 있는 매크로의 예를 살펴보겠습니다.


이렇게 하려면 책을 열고 다음으로 이동하세요. Visual Basic Editor (Alt+F11) , 새 모듈 공백 추가 (Insert - Module) 거기에 다음 매크로 텍스트를 복사합니다.

Sub Report_file()
'moonexcel.com.ua
Application.ScreenUpdating = False ' 화면 새로 고침 비활성화 

    Set report = Workbooks("Report.xlsb").Worksheets(1)
    find_field = report.[a1]
    
    ' 가져올 파일을 선택하기 위한 대화 상자 열기 
    FilesToOpen = Application.GetOpenFilename _
      (FileFilter:="All files (*.*), *.*", _
      MultiSelect:=True, Title:=" 파일을 선택하세요! ")

    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox " 파일이 선택되지 않았습니다! "
        Exit Sub
    End If
    
    ' 선택한 모든 파일을 하나씩 살펴보겠습니다. 
    m = 1
    While m <= UBound(FilesToOpen)
        Set importWB = Workbooks.Open(Filename:=FilesToOpen(m))
        Set importWS = importWB.Worksheets(1)
    
        ' 우리는 세포를 이겼다"  모자  " 
        For Each cell2 In report.Range(report.Cells(1, 2), report.Cells(1, report.UsedRange.Columns.Count))
            On Error Resume Next: Err.Clear
            ' 펼쳐진 책에서 의미를 찾는다 
            tr = importWS.UsedRange.Find(find_field).Row
            tc = importWS.UsedRange.Find(find_field).Column
            x = importWS.Range(importWS.Cells(tr, tc), importWS.Cells(20000, tc)).Find(report.Cells(m + 1, 1).Value).Row
            y = importWS.UsedRange.Find(cell2.Value).Column
            ' 찾은 값을 보고서 파일로 전송 
            report.Cells(m + 1, cell2.Column).Value = importWS.Cells(x, y).Value
        Next
        
        importWB.Close savechanges:=False
        m = m + 1
    Wend
         
Application.ScreenUpdating = True
End Sub

그런 다음 Excel로 돌아가서 메뉴를 통해 매크로를 실행할 수 있습니다. Tools - Macro - Macros (Alt+F8) .