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

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

같은 카테고리의 다른 글
엑셀 / 랜덤 정렬하는 방법

엑셀 / 랜덤 정렬하는 방법

엑셀은 셀의 값, 셀의 색, 글자 색 등을 기준으로 정렬할 수 있습니다. 보통은 특정 기준으로 차례대로 정렬하는 것이 보기 좋습니다. 하지만 간혹 랜덤하게 나열해야하는 경우도 있습니다. 예를 들어 영어 단어 시험지를 만들 때, 순서 다른 여러 가지를 만들면 부정 행위의 위험을 줄일 수 있겠죠. 안타깝게도 엑셀에는 랜덤 정렬이라는 게 없어서 편법을 사용해야 ...

엑셀 / 함수 / LEFT, LEFTB, MID, MIDB, RIGHT, RIGHTB / 문자열 추출 함수

엑셀 / 함수 / LEFT, LEFTB, MID, MIDB, RIGHT, RIGHTB / 문자열 추출 함수

LEFT, LEFTB LEFT는 텍스트 문자열의 첫 번째 문자부터 시작하여 지정한 문자 수만큼 문자를 반환한다. LEFT(text, ) LEFTB는 텍스트 문자열의 첫 번째 문자부터 시작하여 지정한 바이트 수만큼 문자를 반환한다. LEFTB(text, ) 영문자 등은 한 문자가 1바이트이므로 결과에 차이가 없다. 하지만, 한글 등 2바이트 문자라면 차이가 난다. 수식으로 계산된 결과에 대해서도 적용할 수 있다. MID, MIDB MID는 텍스트 문자열에서 지정된 ...

엑셀 / 기호, 특수 문자 입력하는 방법

엑셀 / 기호, 특수 문자 입력하는 방법

엑셀에 기호 또는 특수 문자를 입력하는 방법은 두 가지가 있습니다. 삽입 - 메뉴 상단에서 를 클릭합니다. 글꼴을 바꾸가면서 필요한 기호를 찾습니다. 기호를 선택한 후 을 클릭하면 기호가 셀에 삽입됩니다. 자음 + 한자 ㄱ, ㄴ 등 자음을 입력하고 한자 키를 누릅니다. 그러면 특수 문자가 나옵니다. 화살표를 클릭하면 입력할 수 있는 기호를 ...

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

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

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

엑셀 / 암호 설정하는 방법, 암호 해제하는 방법

엑셀 / 암호 설정하는 방법, 암호 해제하는 방법

암호 종류 엑셀에는 두 가지 암호가 있어요. 하나는 열기 암호, 또 하나는 쓰기 암호입니다. 둘 중 하나만 설정해도 되고, 둘 다 설정해도 돼요. 열기 암호를 설정하면 문서를 열 때 암호가 필요합니다. 암호를 모르면 문서 내용을 볼 수 없어요. 쓰기 암호를 설정하면 문서를 수정할 때 암호가 필요합니다. 암호를 몰라도 문서의 내용은 볼 수 있어요. 열기 암호와 ...

엑셀 / 함수 / ADDRESS / 셀 주소 확인하는 함수

엑셀 / 함수 / ADDRESS / 셀 주소 확인하는 함수

개요 ADDRESS는 행과 열 번호를 지정하면 셀 주소를 반환하는 함수이다. 구문 ADDRESS(row_num, column_num, ) row_num 필수 요소로, 셀 참조에 사용할 행 번호 column_num 필수 요소로, 셀 참조에 사용할 열 번호 abs_num 선택 요소로, 반환할 참조 유형을 지정 1은 절대 행 절대 열, 2는 절대 행 상대 열, 3은 상대 행 절대 열, 4는 상대 행 상대 열 기본값은 1 a1 선택 ...

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

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

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

엑셀 / 화살표 키 눌렀을 때 스크롤 되는 현상 해결하는 방법

보통 셀이 선택된 상태에서 화살표 키를 누르면 선택된 셀이 이동한다. 예를 들어 A1이 선택된 상태에서 오른쪽 화살표 키를 누르면 B1이 선택된다. 그런데, 선택된 셀이 이동하는 게 아니라 시트 자체가 스크롤 되는 경우가 있다. 그렇게 되는 이유는 자신도 모르게 Scroll Lock를 눌렀기 때문... 다시 Scroll Lock을 누르면 원래대로 돌아온다.

엑셀 / 함수 / RADIANS, DEGREES / 도를 라디안으로, 라디안을 도로 변환하는 함수

엑셀 / 함수 / RADIANS, DEGREES / 도를 라디안으로, 라디안을 도로 변환하는 함수

개요 RADIANS는 도를 라디안으로, DEGREES는 라디안을 도로 변환하는 함수입니다. 구문 RADIANS(angle) angle : 필수 요소입니다. 변환할 도 단위의 각도를 입력합니다. DEGREES(angle) angle : 필수 요소입니다. 변환할 라디안 단위의 각도를 입력합니다. 파이는 PI() 함수를 이용합니다. 예제

엑셀 / 함수 / 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으로 변경하면 됩니다. 선택 ...