출처 : 아별닷컴
피벗테이블의 요소별 영역을 선택하는 것들을 따로 정리해봤습니다.
피벗테이블을 VBA로 컨트롤 하고 싶으신 분들은 참고하세요. updated 2010.02.24 22:09 by abyul.com
'피벗테이블의 열부분을 선택한다. '피벗테이블의 페이지필드를 선택한다. '피벗테이블의 데이터 영역부분을 선택한다. '피벗테이블의 데이터필드들의 이름목록을 선택한다. '피벗테이블에서 페이지필드를 제외하고 모두 선택한다. '피벗테이블에서 페이지필드를 포함해 전부 선택한다.
|
'아래 내용들은 본인이 직접 VBA창(Alt+F11)의 실행창(Ctrl+G)에서 확인해본 내용이다. '피벗테이블의 열부분을 선택한다. '피벗테이블의 데이터 영역부분을 선택한다. '피벗테이블의 피벗필드의 개수를 갖고 온다. '피벗테이블의 첫번째 데이터 필드 항목의 함수를 합계로 지정해준다.
|
출처 : 엑사모
Range속성 중에 Group속성을 이용하면, 기간단위로 그룹핑이 가능하다.. +_+;;
ActiveSheet.Range("F6").Group Start:=True, End:=True, Periods:=Array(True, True, True, True, True, True, True)
위 코드에서 Periods:=Array(True, True, True, True, True, True, True) 부분이 중요한데,
각 배열 요소들의 의미는 아래와 같다.
Periods:=Array(초,분,시,일,월,분기,년)
년, 분기, 월단위로 묶으려면 아래와 같이 하면 된다.
ActiveSheet.Range("F6").Group Start:=True, End:=True, Periods:=Array(False, False, False, False, True, True, True)
'Date를 반기,분기,월로 묶는방법을.. 코딩 한줄로. +_+;; '밑의 빨간색 라인을 주목할 것! +_+;;;; Sub Pivote() Dim PV As PivotCache Dim PVT As PivotTable Dim RngDATA As Range Dim RngTo As Range With Sheets("Sheet1") Set RngDATA = .Range("A1").CurrentRegion '피벗테이블의 데이터 범위 Set RngTo = .Range("F5") '현재 시트에 붙여 넣을 범위 Set PV = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=RngDATA) Set PVT = PV.CreatePivotTable(TableDestination:=RngTo, TableName:="PivoteName1") 'TableDestination:="" 이면 시트를 새로 생성한다. With PVT .PivotFields("Date").Orientation = xlRowField .PivotFields("Date").Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False) .PivotFields("Branch").Orientation = xlRowField .PivotFields("Date").Subtotals = Array(False, False, False, False, False, False, False, False, False, False, False, False) .PivotFields("BrandName").Orientation = xlPageField .PivotFields("Sales_AMT").Orientation = xlDataField End With .Range("F6").Group Start:=True, End:=True, Periods:=Array(False, False, False, False, True, True, False) End With End Sub |
'피벗테이블 생성시 바로 Period를 그룹핑할 수 있다.
ActiveSheet.PivotTables("피벗 테이블1").PivotFields("건수").Orientation = xlDataField
Range("c4").Group Start:=True, End:=True, Periods:=Array(False, False, False, _
False, True, False, False) '피벗그룹설정