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

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

같은 카테고리의 다른 글
엑셀 / 여러 워크시트 한 화면에서 동시에 보기

엑셀 / 여러 워크시트 한 화면에서 동시에 보기

여러 워크시트 동시 작업 여러 워크시트에서 동시에 작업할 때가 있습니다. A 시트에서는 데이터를 관리하고, B 시트에서는 그 데이터를 분석하고... 작업을 하면서 여러 시트를 왔다갔다 하는 게 많이 불편합니다. 그럴 땐 한 화면에서 여러 시트를 한 번에 볼 수 있게 만들면 좋습니다. 시트간 이동도 편하고, 한 눈에 모든 걸 볼 수 있는 것도 ...

엑셀 / 함수 / ISEVEN, ISODD / 짝수인지 홀수인지 확인하는 함수

엑셀 / 함수 / ISEVEN, ISODD / 짝수인지 홀수인지 확인하는 함수

개요 ISEVEN과 ISODD 함수는 인수가 짝수인지 홀수인지 확인하는 함수입니다. 구문 ISEVEN(number) number가 짝수면 TRUE, 홀수면 FALSE를 반환합니다. 0은 짝수로 취급하고, 소숫점 이하는 버립니다. ISODD(number) number가 홀수면 TRUE, 짝수면 FALSE를 반환합니다. 소숫점 이하는 버립니다. 예제 엑셀 / EVEN, ODD - 짝수 또는 홀수로 올림 또는 내림하는 함수

엑셀 / 함수 / MEDIAN / 중앙값(중간값) 구하는 함수

엑셀 / 함수 / MEDIAN / 중앙값(중간값) 구하는 함수

개요 MEDIAN 함수는 수의 집합에서 수를 크기순으로 나열했을 때 정가운데에 있는 수를 구하는 함수입니다. 그 수를 중앙값 또는 중간값이라 합니다. 구문 MEDIAN(number1, , ...) number1은 필수 요소이고, 이후의 number는 선택 요소입니다. 1개에서 255개까지 사용할 수 있습니다. 수의 개수가 홀수일 때는 크기순으로 나열했을 때 정가운데의 수를 반환합니다. 예를 들어 MEDIAN(3,4,5,6,6) 은 5입니다. 수의 개수가 짝수일 때는 크기순으로 나열했을 때 가운데에 있는 ...

엑셀 / 함수 / EVEN, ODD / 짝수 또는 홀수로 올림 또는 내림하는 함수

엑셀 / 함수 / EVEN, ODD / 짝수 또는 홀수로 올림 또는 내림하는 함수

개요 EVEN은 짝수로 만드는 함수, ODD는 홀수로 만드는 함수입니다. 구문 EVEN(number) ODD(number) 양수인 경우 가까운 짝수 또는 홀수로 올림하고, 음수인 경우 가까운 짝수 또는 홀수로 내림합니다. 예를 들어 EVEN(123) 은 123에서 가까운 짝수로 올림한 값 124를 반환합니다. EVEN(-123) 은 -123에서 가까운 짝수로 내림한 값 -124를 반환합니다. 즉, 인수가 부호만 차이난다면 결과도 부호만 차이납니다. 인수가 소수인 경우 정수를 반환합니다. 예를 들어 EVEN(122.1) 은 124를 ...

엑셀 / 중복된 값 찾는 방법, 중복 항목 제거하는 방법

엑셀 / 중복된 값 찾는 방법, 중복 항목 제거하는 방법

엑셀로 자료를 취합하고 정리하다보면 중복된 값들이 생기기도 합니다. 그런 중복 항목을 찾기 위해 눈으로 검토할 필요는 없습니다. 엑셀에는 중복된 항목을 찾거나, 찾아서 제거하는 기능이 있기 때문입니다. 중복 값 찾기 중복 값을 찾을 열을 선택합니다. 을 클릭합니다. 을 클릭하면... 중복된 값이 강조됩니다. 조건부 서식에서 를 ...

엑셀 / 함수 / FIND, FINDB, SEARCH, SEARCHB / 특정 문자열의 시작 위치를 반환하는 함수

엑셀 / 함수 / FIND, FINDB, SEARCH, SEARCHB / 특정 문자열의 시작 위치를 반환하는 함수

개요 FIND, FINDB, SEARCH, SEARCHB는 특정 문자열의 시작 위치를 반환하는 함수입니다. FIND, FINDB는 대소문자를 구분합니다. SEARCH, SEARCHB는 대소문자를 구분하지 않습니다. FIND와 SEARCH는 글자 수 기준으로, FINDB와 SEARCHB는 바이트 기준으로 계산합니다. 구문 FIND(find_text, within_text, ) FINDB(find_text, within_text, ) SEARCH(find_text, within_text, ) SEARCHB(find_text, within_text, ) find_text : 필수 요소로, 찾으려는 문자열입니다. within_text : 필수 요소로, 찾을 대상이 되는 문자열입니다. start_num : 선택 요소로, 검색을 시작할 위치입니다. 생략하면 ...

엑셀 / 와일드카드(*, ?, ~) 사용하는 방법

엑셀 / 와일드카드(*, ?, ~) 사용하는 방법

엑셀에서 검색을 하면 검색어를 포함한 셀을 찾습니다. 예를 들어 AB로 검색을 하면 AB가 제일 앞에 있든, 중간에 있는, 마지막에 있는 다 찾습니다. 만약 AB로 시작하는 셀을 찾고 싶을 때, A로 시작해서 B로 끝나는 셀을 찾고 싶을 때, AB로 끝나는 셀을 찾고 싶을 때는 어떻게 할까요? 그럴 때 사용하는 것이 와일드카드입니다. 와일드카드는 *과 ...

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

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

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

엑셀 / 함수 / SUMPRODUCT / 곱의 합 구하는 함수

엑셀 / 함수 / SUMPRODUCT / 곱의 합 구하는 함수

개요 SUMPRODUCT는 곱들의 합을 구하는 함수이다. 이것을 주어진 배열에서 해당 요소를 모두 곱하고 그 곱의 합계를 반환한다고 표현한다. 표현은 복잡하지만, PRODUCT를 구하고 그 다음 SUM을 구한다고 생각하면 된다. 구문 SUMPRODUCT(array1, , ...) 각 배열에 같은 순서에 있는 값들을 곱한 후 다 더한 값을 출력한다. 배열 안의 값의 개수, 즉 차원이 같아야 한다. 만약 다르면 #VALUE! ...

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

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

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