지식 창고/개발 및 업무자동화

[VBA] 엑셀파일 불러와서 값 붙여넣기

7.3.7 2023. 12. 20. 12:05

내용

특정 내용을 다른 엑셀 파일에서 가져와서 현재 워크시트에 붙여넣기 하는 내용이다.

 

코드

Sub test()

    ' RAW 파일 열기
    Dim raw_fileNo As Variant
    Dim raw_file As Workbook
    Dim raw_sheet As Worksheet
    
    raw_fileNo = Application.GetOpenFilename(Filefilter:="엑셀파일(*.xls*),*.xls*", MultiSelect:=True)
    Set raw_file = Workbooks.Open(Filename:=raw_fileNo(1), ReadOnly:=False)
    Set raw_sheet = raw_file.Sheets(1)
    
    ' RAW 파일 내 INDEX 복사
    Dim lastRow As Long
    Dim dataRange As Range
    
    lastRow = raw_sheet.Cells(raw_sheet.Rows.Count, "A").End(xlUp).Row
    Set dataRange = raw_sheet.Range("A2:A" & lastRow)
    dataRange.Copy

    ' 현재 작업 중인 파일에 데이터를 붙여넣기
    ThisWorkbook.Sheets(2).Range("A2").PasteSpecial Paste:=xlPasteValues

    ' 복사 모드 해제
    Application.CutCopyMode = False
    
    ' 원본 RAW 파일 닫기 (저장하지 않음)
    raw_file.Close SaveChanges:=False
    
End Sub