엑셀 / VBA / 여러 시트의 내용을 하나의 시트에 모으는 방법

동일한 형식에 내용만 다른 여러 시트의 데이터를 하나로 합치는 방법을 알아본다.

예를 들어 다음과 같은 엑셀 문서가 있다고 하자. 첫 번째 시트는 합쳐진 데이터가 모일 시트이고, 나머지 세 개는 데이터가 있는 시트이다.

[개발 도구]의 [Visual Basic]을 클릭한다.(만약 개발 도구 메뉴가 없다면 여기의 안내대로 개발 도구를 추가한다.)

[삽입]의 [모듈]을 클릭한다.

다음과 같이 코드를 입력한다.

Sub Merge()

    Sheets(1).Activate '첫 번째 시트로 이동
    ActiveSheet.Range("A1").CurrentRegion.Select '값이 있는 셀 선택
    Selection.Delete '선택한 셀 삭제

    Sheets(2).Activate '두 번째 시트로 이동
    ActiveSheet.Range("A1").CurrentRegion.Select '값이 있는 셀 선택
    Selection.Copy Destination:=Sheets(1).Range("A1") '첫 번째 시트에 붙여넣기
    ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select '값이 있는 다음 행 첫 번째 셀 선택

    Dim I As Integer
    For I = 3 To 4
        Sheets(I).Activate 'I 번째 시트로 이동
        ActiveSheet.Range("A1").CurrentRegion.Select '값이 있는 셀 선택
        Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select '선택에서 1행 제외
        Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2) '첫 번째 시트에 붙여넣기
        ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select '값이 있는 다음 행 첫 번째 셀 선택
    Next
    
    Sheets(1).Activate '첫 번째 시트로 이동
    ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select '값이 있는 다음 행 첫 번째 셀 선택
    
End Sub

다음의 순서로 작업하는 코드이다.

  1. 첫 번째 시트를 선택하고 내용을 지운다.
  2. 두 번째 시트의 내용을 복사하여 첫 번째 시트에 붙여넣는다.
  3. 나머지 시트의 내용을 복사하여 첫 번째 시트에 붙여넣는다.

두 번째 시트에 대한 코드와 나머지 시트에 대한 코드가 다른 이유는 머리글 때문이다.

이제 [개발 도구]의 [매크로]를 클릭한다. 단축키는 Alt+F8이다.

Merge를 선택하고 [실행]을 클릭한다.

다음처럼 첫 번째 시트에 데이터가 다 모인다.

같은 카테고리의 다른 글

엑셀 / 함수 / ABS / 절댓값을 반환하는 함수

개요 ABS 함수는 'absolute value'의 약자로, 숫자의 절댓값을 구하는 함수입니다. 절댓값은 숫자의 크기만을 나타내며, 부호를 무시합니다. 예를 들어, -5의 절댓값은 5이고, 5의 절댓값은 그대로 5입니다. 구문 ABS(number) number: 절댓값을 구하고자 하는 숫자입니다. 이 인수는 숫자 자체일 수도 있고 셀 참조나 수식의 결과일 수도 있습니다. 예제 기본 예제 절댓값을 구하고자 하는 숫자를 직접 함수에 입력하는 방법입니다. 다음은 25를 반환합니다. =ABS(-25) 다음은 ...

엑셀 / 함수 / COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS

엑셀 / 함수 / COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS

개요 셀 개수를 세는 함수에는 COUNT, COUNTA, COUNTBLANK, COUNTIF, COUNTIFS가 있다. COUNT는 숫자가 있는 셀의 개수, COUNTA는 비어 있지 않은 셀의 개수, COUNTBLANK는 비어 있는 셀의 개수, COUNTIF는 조건에 맞는 셀의 개수, COUNTIFS는 여러 조건에 맞는 셀의 개수를 반환한다. 구문 COUNT COUNT(value1, , ...) 숫자가 있는 셀의 개수를 반환한다. 비어 있거나 문자가 있는 셀은 세지 않는다. COUNTA COUNTA(value1, , ...

엑셀 / 함수 / DAYS / 두 날짜 사이의 일수를 계산하는 함수

엑셀 / 함수 / DAYS / 두 날짜 사이의 일수를 계산하는 함수

개요 DAYS 함수는 두 날짜 사이의 일수를 반환하는 함수입니다. 구문 DAYS(end_date, start_date) end_date : 필수 요소로, 끝나는 날짜입니다. start_date : 필수 요소로, 시작하는 날짜입니다. 끝나는 날짜를 앞에, 시작하는 날짜를 뒤에 입력한다는 것에 주의합니다. 끝나는 날짜가 시작하는 날짜보다 이전이면 음수를 반환합니다. 예제 2018년 1월 1일부터 2018년 1월 15일까지의 일수를 계산하는 예제입니다. 만약 수식에 날짜를 직접 입력하고 싶다면 날짜를 따옴표로 감쌉니다. =DAYS("2018-01-15","2018-01-01")

엑셀 / 인쇄 / 워크시트에서 선택한 영역만 인쇄하는 방법

엑셀 / 인쇄 / 워크시트에서 선택한 영역만 인쇄하는 방법

엑셀은 선택한 영역만 인쇄하는 기능을 갖고 있습니다. 일부분만 인쇄하기 위해서 새로 시트를 만들 필요가 없습니다. 인쇄하고 싶은 셀들을 선택합니다. Ctrl+P를 눌러서 인쇄 창을 엽니다. 그리고 를 선택합니다. 미리보기에서 어떻게 인쇄가 되는지 볼 수 있습니다. 설정을 마쳤으면 를 클릭하여 출력합니다.

엑셀 / 오름차순 정렬하기, 내림차순 정렬하기, 여러 기준으로 정렬하기

엑셀 / 오름차순 정렬하기, 내림차순 정렬하기, 여러 기준으로 정렬하기

엑셀에서 정렬은 데이터 탭에서 한다. 한 개를 기준으로 정렬할 수도 있고, 여러 개를 기준으로 정렬할 수도 있다. 한 개를 기준으로 정렬하기 정렬하려는 값들이 있는 셀 중에서 정렬 기준이 될 열에 있는 셀 중 하나를 선택한다. 을 클릭하면 내림차순으로 정렬한다. 정렬할 영역은 엑셀이 자동으로 정한다. 여러 개를 기준으로 정렬하기 버튼을 클릭하면 ...

엑셀 / 하이퍼링크 제거하는 방법, 자동 하이퍼링크 안 생기게 하는 방법

엑셀 / 하이퍼링크 제거하는 방법, 자동 하이퍼링크 안 생기게 하는 방법

자동 하이퍼링크 엑셀에 값을 입력할 때, 그 값이 URL이라면 자동으로 하이퍼링크가 생깁니다. 그리고 글자 모양과 크기는 기본 글자 모양으로 바뀝니다. 아래가 그 예입니다. 글자 모양은 나눔명조, 글자 크기는 10인 상태에서 네이버 URL을 입력했습니다. URL에는 링크가 만들어지고, 글자 모양은 맑은 고딕, 글자 크기는 11로 바뀌었습니다. 하이퍼링크의 기본 기능이 그 주소로 이동하는 것이므로, URL에 자동으로 ...

엑셀 / 스파크라인 / 데이터를 시각적으로 보여주기

엑셀 / 스파크라인 / 데이터를 시각적으로 보여주기

스파크라인 스파크라인은 데이터를 시각적으로 나타내줍니다. 챠트와 비슷해서 미니 챠트라고 부르기도 합니다. 챠트와 스파크라인의 차이점 중의 하나는, 스파크라인은 셀에 속한다는 것입니다. 그리고 셀의 값이 아니라 배경으로 만들어집니다. 스파크라인 만들기 이 있습니다. 적절한 모양을 정하고 클릭합니다.(모양은 나중에 바꿀 수 있습니다.) 라는 창이 뜹니다. 범위를 선택하고 을 클릭하면 스파크라인이 만들어집니다. 스파크라인 모양 바꾸기 스파크라인을 선택하면 디자인 탭이 ...

엑셀 / 통합 문서 모든 시트 대상으로 검색하는 방법

엑셀 / 통합 문서 모든 시트 대상으로 검색하는 방법

기본 검색 대상 엑셀은 찾기 기능이 있습니다. Ctrl+F로 찾기 창을 연 후 검색어를 입력하고 검색하면 됩니다. 검색을 하면 그 대상이 필요한데, 기본 설정은 현재 워크시트입니다. 현재 워크시트에 검색어가 있으면 그 위치로 이동하고, 없다면 찾을 수 없다고 알려줍니다. 다른 워크시트에 그 검색어가 있어도 검색 대상이 현재 워크시트이므로 없다고 나옵니다. 모든 워크시트를 대상으로 검색하기 검색 대상을 변경해서 ...

엑셀 / 숫자를 문자(텍스트)로 변경하는 방법 3가지

엑셀 / 숫자를 문자(텍스트)로 변경하는 방법 3가지

숫자이기는 하지만 데이터 형식이 숫자가 아니라 문자(텍스트)여야 하는 경우가 있다. 이미 숫자로 입력된 상태에서 텍스트로 형식을 변경하는 방법 세 가지를 소개한다. 대부분 방법 1로 해결이 되나, 문제가 있다면 방법 3을 사용한다. 방법 1 - 표시 형식 변경 다음과 같은 숫자 데이터가 있다면... 셀을 선택한 후 마우스 우클릭하고 을 클릭합니다. 표시 형식을 을 ...

엑셀 / 함수 / VLOOKUP, HLOOKUP, XLOOKUP

엑셀 / 함수 / VLOOKUP, HLOOKUP, XLOOKUP

VLOOKUP 문법 VLOOKUP(lookup_value,table_array,col_index_num,) lookup_value : 찾을 값 table_array : 조회할 범위 col_index_num : 반환하려는 값이 있는 열 번호 range_lookup : TRUE면 근사 일치, FALSE면 정확히 일치. 기본값은 TRUE 예제 =VLOOKUP(E2,A2:C16,2,FALSE) A2:C16의 1열(A열)에서 E2의 값을 찾고, 그 행의 2열(B열)의 값을 출력합니다. FALSE는 정확히 일치하는 것을 찾으라는 뜻입니다. E2에 6이 있으니, 6에 해당하는 이름 F를 출력합니다. =VLOOKUP(E2,A2:C16,3,FALSE) 가격을 출력하고 싶다면 2를 3으로 변경하면 됩니다. 선택 ...