엑셀 / 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를 선택하고 [실행]을 클릭한다.

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

같은 카테고리의 다른 글
엑셀 / 숫자를 한글 또는 한자로 나타내는 방법

엑셀 / 숫자를 한글 또는 한자로 나타내는 방법

수를 한글로 표시해야할 때가 간혹 있습니다. 한글로 쓰면 위변조가 어려워서 그렇다고 알고 있는데, 진짜 이유가 그것인지는 잘 모르겠습니다. 수를 한글로 나타내기 위해서 처음부터 한글로 입력할 필요는 없습니다. 엑셀에는 수를 한글로 나타내는 기능이 있기 때문입니다. 이 기능을 이용해야 엑셀에서 숫자로 취급합니다. 수를 입력한 후 마우스 우클릭해서 을 엽니다. 범주에서 를 선택한 후 형식에서 ...

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

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

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

엑셀 / 나누기, 몫 구하기, 나머지 구하기

엑셀 / 나누기, 몫 구하기, 나머지 구하기

나누기 나누기는 슬래시 기호로 해요. 예를 들어 6 나누기 2는 6/2 와 같이 하면 됩니다. 몫 구하기 나누었을 때의 몫만 구하고 싶다면 QUOTIENT 함수를 이용하면 돼요. QUOTIENT(numerator, denominator) numerator에는 피제수, denominator에는 제수를 넣습니다. 나머지 구하기 나누었을 때의 나머지만 구하고 싶다면 MOD 함수를 사용합니다. MOD(number, divisor) number에는 피제수, divisor에는 제수를 입력합니다. 예제 다음은 100을 8로 나누어보고, 몫을 구하고, 나머지를 구하는 예제입니다.

엑셀 / 함수 / TEXTJOIN / 여러 텍스트를 하나로 합치는 함수

엑셀 / 함수 / TEXTJOIN / 여러 텍스트를 하나로 합치는 함수

개요 TEXTJOIN은 여러 문자열을 합하여 하나의 문자열로 만드는 함수입니다. CONCAT과 비슷하나, 구분 기호와 빈 셀 처리에 대한 설정이 가능합니다. 구문 TEXTJOIN(delimiter, ignore_empty, text1, , …) delimiter : 문자열 사이에 들어갈 구분 기호입니다. ignore_empty : 빈 셀을 무시할지 정합니다. TRUE면 무시하고, FALSE면 무시하지 않습니다. text1 : 연결할 텍스트 항목입니다. text2 : 연결할 추가 텍스트 항목입니다. 예제 예제 1 구분 기호 없이, 빈 ...

엑셀 / 함수 / TRIM / 공백 제거하는 함수

엑셀 / 함수 / TRIM / 공백 제거하는 함수

개요 TRIM은 문자열에 있는 공백을 제거하는 함수이다. 문자열 양 끝에 있는 공백은 다 제거한다. 문자열 사이에 있는 공백은 하나만 남기고 제거한다. 구문 TRIM(text) 예제 =TRIM(" AB CD ") AB, CD 양 끝과 사이에 한 개의 공백이 있으면, 양 끝의 공백은 제거하고, 사이에 있는 것은 그대로 둔다. =TRIM(" AB CD ") AB, CD 양 끝과 사이에 두 개의 공백이 있으면, 양 ...

엑셀 / 함수 / LEN, LENB / 문자열의 문자 수, 바이트 수 구하는 함수

엑셀 / 함수 / LEN, LENB / 문자열의 문자 수, 바이트 수 구하는 함수

개요 LEN은 문자열의 문자 수를, LENB는 문자열의 바이트 수를 구하는 함수입니다. 구문 LEN(text) LENB(text) text : 필수 요소로, 길이를 구하려는 문자열입니다. 공백은 1개의 문자, 1바이트의 문자로 계산합니다. 한국어, 일본어, 중국어는 한 문자를 2바이트로 계산합니다. 예를 들어 LEN("가")는 1, LENB("가")는 2입니다. 예제 예제 1 ABCDE는 모두 1바이트 문자이므로, LEN과 LENB 모두 5를 반환합니다. 예제 2 공백은 1개의 문자, 1바이트 문자로 계산합니다. 예제 3 한국어, 일본어, 중국어는 1개의 문자를 ...

엑셀 / 셀 안에서 강제 줄바꿈하는 방법

엑셀 / 셀 안에서 강제 줄바꿈하는 방법

셀 안에서 줄바꿈을 하고 싶다면 Alt + Enter를 누릅니다. 줄바꿈한 내용을 수식입력줄에서 보고 싶다면, 오른쪽 끝에 있는 아이콘을 클릭합니다.

엑셀 / 인쇄 / 바닥글에 총 페이지 수, 현재 페이지 번호 표시하는 방법

엑셀 / 인쇄 / 바닥글에 총 페이지 수, 현재 페이지 번호 표시하는 방법

엑셀 워크시트를 인쇄할 때 페이지를 표시하는 게 좋습니다. 그래야 정리하기도 편하고, 찾기도 편합니다. 현재 페이지 번호만 인쇄를 하면 마지막 장을 잃어버려도 잃어버린지 모릅니다. 그런 문제를 해결하기 위해서는 전체 페이지 수도 같이 인쇄합니다. 현재 페이지 번호화 전체 페이지 수를 어떻게 바닥글에 넣고 인쇄하는지 알아보겠습니다. 페이지 설정 인쇄 화면에 있는 을 클릭합니다.(인쇄 미리보기 단축키는 Ctrl+P입니다.) 바닥글에서 ...

엑셀 / 양수(이익)를 빨간색, 음수(손실)를 파란색으로 만드는 방법

엑셀 / 양수(이익)를 빨간색, 음수(손실)를 파란색으로 만드는 방법

음수를 빨간색으로 강조하는 것은 셀 서식에 정의되어 있다. 숫자 형식으로 하고 음수의 표시 방식을 정하면 된다. 1000 단위 구분 기호도 쉽게 넣을 수 있다. 음수를 빨간색으로 표시하는 게 일반적이기는 한데, 국내 주식은 그렇지 않다. 오르는 게 빨간색, 내리는 게 파란색이다. 상승은 빨간색이라는 게 익숙해서, 엑셀에 손익을 기록할 때 손실이 빨간색으로 나오는 ...

엑셀 / 행과 열 바꾸는 방법

엑셀 / 행과 열 바꾸는 방법

제품 A와 제품 B를 판매하고 있습니다. 날짜별 제품 판매량을 엑셀로 정리하려고 합니다. 그래서 아래와 같이 열은 날짜로, 행은 제품으로 기준을 정하고 입력을 했더니, 날짜가 지날수록 표가 가로로 길어집니다. 계속 길어지면 스크롤 하면서 내용을 봐야 하는데 가로 스크롤보다는 세로 스크롤이 편합니다. 데이터가 많이 입력된 상태에서 행과 열을 어떻게 쉽게 바꿀 수 있을까요? 해결책은 ...