VBA를 통해서 여러개의 엑셀파일의 데이터를 한꺼번에 가져오는 코드입니다.
Files = Application.GetOpenFilename(MultiSelect:=True)
# 대화창을 열어서 파일을 선택할 수 있게 하는 코드입니다. 'MultiSelect:=True'면 여러개 파일을 선택할 수 있습니다.
On Error Resume Next
# 에러가 나면 다음을 진행해라는 얘기죠
For I = 1 To UBound(Files)
#'UBound'라는 함수안에 위에서 선택한 'Files'가 들어갑니다. 이러한 파일들은 첫번째(1) 부터 순차적으로 반복한다는 얘기입니다.
Set File = Workbooks.Open(Filename:=Files(I), ReadOnly:=True)
# 'File'은 순차적으로 열리는 하나의 파일을 '읽기전용'으로 열어서 'File'이라는 변수에 저장합니다.
Set shO = ThisWorkbook.Sheets(1)
Set shC = File.Sheets(1)
# 그리고 지금 매크로가 포함된 엑셀파일의 Sheets는 'shO'라고 정하고, 데이터를 복사할 파일의 Sheet를 'shC'라고 정합니다.
shO.cells(1,1) = shC.cells(1,1)
#복사할 셀을 입력할 셀에 넣습니다.
File.Close
#작업이 끝난 파일을 닫습니다.
Next F
# For 반복문을 종료합니다.
이런 구조로 되어있는데, 안에 함수라던지 반복문들을 사용해서 활용할 수 있습니다.
728x90
반응형
'엑셀 컴퓨터 인터넷 > 엑셀 VBA' 카테고리의 다른 글
엑셀 - 다른 파일에서 시트 가져오기 (0) | 2020.11.24 |
---|---|
엑셀 VBA(매크로) - 반복문(For문, While문)에서 나갈 때 (0) | 2020.11.23 |
엑셀 VBA(매크로) - 반복문 (0) | 2020.11.17 |
엑셀 VBA(매크로) - 행 높이, 열 너비 자동으로 설정하기 (0) | 2020.11.14 |
엑셀 VBA(매크로) - Hyperlink(하이퍼링크) 자동으로 넣기 (0) | 2020.11.11 |
댓글