[엑셀 VBA] 모든 시트의 내용을 한시트에 합치기
본문 바로가기
IT/WINDOWS

[엑셀 VBA] 모든 시트의 내용을 한시트에 합치기

by SageIN 2021. 11. 27.
반응형

구글 스프레드시트 시트를 사용하면 

배열이나 쿼리함수를 사용해서 간단하게

시트내용을 단순하게 행추가하며  합칠수 있다.

다른 시트 내용이 추가되면 자동으로 업데이트 또한 하기 쉽다.

아래와 같은 함수를 통해.

 

= QUERY({'본점'!B2:G;'강남점'!B2:G;'강서점'!B2:G}," where Col1 is not null ")

 

하지만 엑셀로 하려면 뭔가 많이 불편하다.

파워커리를 쓰거나 하는 방법이 있는데

내 맘처럼 되지는 않았다.

 

그래서 간단하게 VBA로 만들수 있다.

 

각각의 시트에 내용을 작성하고 

 

 

통합이라는 시트에 '자료업데이트' 버튼을 클릭하면

각시트에서 작성한 내용이 통합 시트에 추가 되게 

하는 것이다.

 

1.  개발도구에서 버튼 추가하기

 

2. 적당한 매크로 이름을 만들고 새로만들기 클릭하기.

3. 코딩화면이 나오면 아래 코드 삽입하기.

Sub 자료업데이트_Click()

'변수선언

Dim i As Integer
Dim Sheetcount As Integer
Dim LastRow As Integer
Dim Sheet1LastRow As Integer

'전체시트수

Sheetcount = ActiveWorkbook.Sheets.Count

'업데이트버튼 누르면 통합시트내용 지우기

Sheet1.UsedRange.Offset(1).Clear

'반복문 돌면서 각시트의 내용을 가저와 통합시트에 복사붙여넣기

For i = 2 To Sheetcount
    LastRow = Sheets(1).Cells(Rows.Count, 1).End(3)(2).Row
    Sheets(i).UsedRange.Offset(1).Copy
    Sheets(1).Cells(LastRow, 1).PasteSpecial xlPasteValues
Next i

'통합시트의 행갯수

Sheet1LastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row

'반복문 돌면서 첫열에  순번 쓰기

For j = 1 To Sheet1LastRow
    Sheets(1).Cells(j + 1, 1) = j
Next j

End Sub

4. 엑셀화면으로 돌아와 버튼을 눌러 내용이 잘 나오는지 확인하기

 

-*-*-*-*-*-*-*-

위에서 사용한 엑셀파일.

시트내용합치기.xlsm
0.04MB

반응형

댓글


TOP

Designed by 티스토리