1. PivotTable과 PivotCache
가. PivotTables와 PivotTable
The PivotTable object is a member of the PivotTables collection
(피벗 테이블 객체는 피벗 테이블 집합의 구성원이다)
The PivotTables collection contains all the PivotTable objects on a single worksheet.
(피벗 테이블 집합은 한 개의 워크 시트에 있는 모든 피벗 테이블 객체를 포함한다)
나. PivotCaches와 PivotCache
PivotCaches Object
Represents the collection of memory caches from the PivotTable reports in a workbook.
(PivotCaches 개체는 워크 북에서 PivotTable 보고서에서의 메모리 캐시 모음을 가리킨다).
다. PivotTable과 PivotCache 비교
PivotTable은 worksheet에 소속되어 있고, PivotCache는 workbook 단이라는 점이 다릅니다.
2. 여러 개 피벗 테이블 다루기
위와 같이 PivotTable과 PivotCache는 다르기 때문에
프로시저의 구문도 다릅니다.
Sheet2에 지점별 매출액 집계표 피벗 테이블을 하나 더 추가했습니다.
가. PivotTables 집합 이용
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pt As PivotTable
For Each pt In Sheets(2).PivotTables
pt.PivotCache.Refresh
Next
End Sub
Dim pt As PivotTable : 변수 pt를 PivotTable 객체로 선언합니다.
For Each pt In Sheets(2).PivotTables : PivotTables에 있는 PivotTable을 하나씩 실행합니다. 이때 PivotTables는 sheet 단이기 때문에 반드시 Sheets(2)라고 PivotTable이 있는 위치를 가르쳐야 합니다.
Sheet2("Sheet2")는 두 번째 있는 워크시트이기 때문에 Sheet2(2)로 바꿔 사용할 수 있습니다.
나. PivotCaches 객체 이용
(1) 방법 1 : For Each
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pc As PivotCache
For Each pc In ActiveWorkbook.PivotCaches
pc.Refresh
Next
End Sub
Dim pc As PivotCache : 변수 pc를 PivotCache 객체로 선언합니다.
For Each pc In ActiveWorkbook.PivotCaches : 현재 워크북에 있는 PivotCaches를 하나씩 실행합니다.
PivotCaches는 workbook 단이기 때문에 반드시 ActiveWorkbook.을 앞에 써야 합니다.
pc.Refresh : PivotCache를 새로 고칩니다.
(2) 방법 2 : For i = 1 ...
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
For i = 1 To ActiveWorkbook.PivotCaches.Count
ActiveWorkbook.PivotCaches(i).Refresh
Next
End Sub
Dim i As Integer : 변수 i를 정수 형식으로 선언합니다.
For i = 1 To ActiveWorkbook.PivotCaches.Count : i가 1부터 PivotCaches의 개수만큼 반복 실행합니다.
PivotCaches는 workbook 단이기 때문에 반드시 ActiveWorkbook.을 앞에 써야 합니다.
ActiveWorkbook.PivotCaches(i).Refresh : PivotCaches중 i번째를 새로 고침 합니다.
그런데, 직접 실행창에서 ActiveWorkbook.PivotCaches.Count 값을 알아보니 신기하게 1입니다.
그러나, PivotTable의 개수는 2개입니다.
'EXCEL - VBA' 카테고리의 다른 글
텍스트로 된 수식의 값 구하기(4 - 1) - Evaluate 함수 (0) | 2023.07.19 |
---|---|
텍스트로 된 수식의 값 구하기(1) - 곱하기만 (0) | 2023.07.16 |
피벗 테이블 새로 고침(1) (0) | 2023.06.12 |
엑셀 VBA 개체 찾아보기 (0) | 2023.06.07 |
엑셀 VBA : 모든 테두리를 실선으로 (0) | 2023.06.05 |