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

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

같은 카테고리의 다른 글
엑셀 / 함수 / TEXTJOIN / 여러 텍스트를 하나로 합치는 함수

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

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

엑셀 / VBA / 주석 만드는 방법

엑셀 / VBA / 주석 만드는 방법

코드는 남아있지만 실행되지 않는 것을 주석이라고 합니다. 주석은 메모를 남길 때 사용하기도 하고, 오류를 찾기 위해 한 줄 씩 실행할 때 사용하기도 합니다. 주석을 만드는 방법은 작은 따옴표를 다는 것입니다. 작은 따옴표 이후의 문자열은 실행되지 않습니다. 주석은 에디터에서 녹색으로 표현됩니다. 여러 줄을 주석으로 만들려면 각 줄에 작은 따옴표를 넣어야 하는데, 많은 양이라면 무척 ...

엑셀 / 함수 / 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, , ...

엑셀 / 셀 내용을 그림으로 복사하기

엑셀 / 셀 내용을 그림으로 복사하기

엑셀로 작업한 결과 또는 시트의 일부분을 그림으로 만들어야 하는 경우가 간혹 있습니다. 어떻게 이미지로 만들 수 있을까요?  가장 먼저 떠오르는 건 픽픽 같은 캡쳐 프로그램으로 캡쳐를 하는 것입니다. 문제는 별도의 프로그램을 설치해야 한다는 것이죠. 또 다른 방법은, 사실 가장 간편한 방법은 엑셀에 포함된 기능을 이용하는 것입니다. 따로 프로그램이 필요한 것도 ...

엑셀 / 틀 고정 하는 방법, 틀 고정 취소하는 방법

엑셀 / 틀 고정 하는 방법, 틀 고정 취소하는 방법

틀 고정 엑셀에 데이터를 입력할 때 보통 표 형태로 넣습니다. 첫 행에 제목을 넣고 밑으로 주욱 입력하거나, 첫 열에 제목을 넣고 오른쪽으로 주욱 입력을 하죠. 자료가 많다면 입력한 내용이 한 화면에 다 나오지 않습니다. 그 보이지 않는 부분을 볼려면 아래로 또는 오른쪽으로 스크롤해야 하는데, 그럴 경우 제목 행 또는 제목 열이 안보여서 ...

엑셀 / 함수 / MAX, MIN, MAXIFS, MINIFS / 최댓값, 최솟값 구하는 함수

엑셀 / 함수 / MAX, MIN, MAXIFS, MINIFS / 최댓값, 최솟값 구하는 함수

MAX, MIN 개요 MAX는 최댓값을 구하는 함수, MIN은 최솟값을 구하는 함수입니다. 구문 MAX(number1, , ...) ​MIN(number1, , ...) number1, number2, ... : number1은 필수 요소이고, 이후의 number는 선택 요소입니다. 함수를 입력하지 않고 의 오른쪽 끝에 있는 메뉴를 이용할 수도 있습니다. 예제 참고 k번째로 큰 값을 구하고 싶다면 LARGE 함수를 사용합니다. k번째로 작은 값을 구하고 싶다면 SMALL 함수를 사용합니다. 메뉴에는 최대값, 최소값이라고 되어 있지만, 표준말는 최댓값, ...

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

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

엑셀 / 피벗 테이블 / 만드는 방법

엑셀 / 피벗 테이블 / 만드는 방법

자료 분석을 위해서 필터를 하거나 새롭게 수식을 만드는 것은 번거로운 일입니다. 피벗 테이블을 이용하면 다양한 형식의 분석 결과를 쉽게 만들 수 있습니다. 피벗 테이블을 만드는 방법은... 방법 1 분석하려는 자료를 선택한 다음, 을 클릭합니다. 만약 자료가 표라면 자동으로 표가 선택됩니다. 을 클릭하면... 새 워크시트에 피벗 테이블이 만들어집니다. 자료가 표가 아닌 경우 셀들을 선택해서 ...

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

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

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

엑셀 / 주민등록번호 뒷자리 별표로 바꾸는 방법

엑셀 / 주민등록번호 뒷자리 별표로 바꾸는 방법

예를 들어 B2 셀에 있는 주민등록번호의 뒷자리를 별표로 바꾸고 싶다면 다음과 같이 합니다. =REPLACE(B2,8,7,"*******")