이번 문제는 시트를 추가한 후 그 이름을 통합으로 변경하는 문제가 그 첫 번째이고
통합시트에 각각의 시트의 데이터들을 모두 복사 이동하는 구문이다.
이 구문을 해결하기 위해서는 데이터가 어디에 있는지 확인하는 것이 가장 급선무이다. 각 시트의 데이터가 특정 영역에서 시작하고 끊김 없이 끝까지 데이터가 입력된 상태인 규칙적인 형태이다. 물론 특정영역부터 데이터가 입력된 영역까지로 하여 데이터를 복사해서 붙여 넣기 해도 되지만 여기서는 Usedrange가 더 바람직한 사용법이라 본다.
For Each Sh In ThisWorkbook.Sheets
If Sh.Name <> "통합" And Sh.Name <> "문제" Then
Sh.UsedRange.Offset(1).Copy Sheets("통합").Cells(Rows.Count, "b").End(3)(2)
End If
Next Sh
워크 시트들을 순환하면서 각 시트의 이름을 [통합 / 문제 ]가 아닌 시트들의 UsedRange.offset(1) 값 [사용된 모든 영역에서 헤더값을 뺀] 들을 복사하여 통합시트에 끊김 없이 복사 붙여 넣기 하면서 문제를 풀어나가는 코드이다.
글로 설명하니 힘드나 실제 코드를 보면 어렵지 않은 코드이다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/021.gif)
더보기
Option Explicit
Sub 기초방28()
Dim Sh As Worksheet
Sheets.Add before:=Sheets("문제") '= 기초방 28번 해법
ActiveSheet.Name = "통합"
[b8:c8] = Array("성명", "매출")
Haja_Format
For Each Sh In ThisWorkbook.Sheets '= 각 시트를 순환해라
If Sh.Name <> "통합" And Sh.Name <> "문제" Then '= 시트명이 통합이나 문제가 아니면
Sh.UsedRange.Offset(1).Copy Sheets("통합").Cells(Rows.Count, "b").End(3)(2)
'= 사용된 영역을 복사해서 통합시트에 붙혀넣기 해라
End If
Next Sh
End Sub
Function Haja_Format()
With [b8:c8]
.HorizontalAlignment = xlCenter
.Interior.Color = vbBlack
.Font.Color = vbWhite
End With
ActiveWindow.DisplayGridlines = False '= 눈금선을 없애라
End Function
엄마~~ 혹시~~
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/011.gif)
'VBA > 엑사남_기초방' 카테고리의 다른 글
[기초방] VBA 100제 #30 [ 폰트처리하기_2 ] (0) | 2023.02.07 |
---|---|
[기초방] VBA 100제 #29 [ 폰트처리하기 ] (0) | 2023.02.07 |
[기초방] VBA 100제 #27 [ 미납자 확인 ] (2) | 2023.02.05 |
[기초방] VBA 100제 #26_1 [ 그룹별 목차 만들기 ] (0) | 2023.02.05 |
[기초방] VBA 100제 #26 [ 그룹별 시트 만들기 ] (0) | 2023.02.03 |
댓글