기초방 68문제의 해결을 각 표를 하나씩 하드 코딩하여 붙혀넣기 하였다면, 이번 구문은 각 테이블을 순환하면서 표 개체를 하나씩 붙혀넣기 하는 방식으로 풀어보았다.
For Each ListTbl In ActiveSheet.ListObjects '= 각 표의 데이터 값을 가져옴
ListTbl.DataBodyRange.Copy
Cells(Rows.Count, "f").End(3)(2).PasteSpecial xlPasteValues
Next ListTbl
각 테이블을 순환하면서 출력 테이블의 데이터값이 있는 행의 다음 행에 각 테이블의 값만 가져오는 코드이다.
이게 이번 문제의 키가 될것이다.
더보기
Option Explicit
Sub 기초방69()
Dim ListTbl As ListObject
Dim i&
Dim rngX As Range
Set rngX = Range([f5], [h5].End(4))
rngX.ClearContents '= 출력 테이블 초기화
For Each ListTbl In ActiveSheet.ListObjects '= 각 표의 데이터 값을 가져옴
ListTbl.DataBodyRange.Copy
Cells(Rows.Count, "f").End(3)(2).PasteSpecial xlPasteValues
Next ListTbl
Cells(Rows.Count, "f").End(3)(2)(1, 2).Resize(1, 2) = Array("TOTAL", _
Application.Sum(rngX.Columns(3)))
'= total과 합계구하기
End Sub
지금까지 잘 따라오고 있다면 쉽게 풀수 있는 문제이다.
이를 365함수식으로 풀게되면 이렇다.
'VBA > 엑사남_기초방' 카테고리의 다른 글
[기초방] VBA 100제 #71 [ 전체누적 + 월별누적 ] (0) | 2023.10.08 |
---|---|
[기초방] VBA 100제 #70 [ 구간별 값 구하기 ] (0) | 2023.10.02 |
[기초방] VBA 100제 #68 [ 테이블 결합하기 ] (0) | 2023.10.01 |
[기초방] VBA 100제 #67 [ 테이블 요약하기 ] (0) | 2023.10.01 |
[기초방] VBA 100제 #66 [ 문자열 정렬하기(feat. 배열정렬) ] (0) | 2023.09.21 |
댓글