建立資料透視表

Excel 中最強大的功能之一是使用資料透視表對資料進行排序和分析。如果你瞭解資料透視表與資料透視表的關係以及如何引用和使用表的不同部分,則使用 VBA 建立和運算元據透視表會更容易。

在最基本的情況下,你的源資料是 Worksheet 上的資料區域。該資料區必須標識資料列,標題行作為範圍中的第一行。建立資料透視表後,使用者可以隨時檢視和更改源資料。但是,更改可能不會自動或立即反映在資料透視表本身中,因為有一個稱為資料透視快取的中間資料儲存結構直接連線到資料透視表本身。

StackOverflow 文件

如果需要多個資料透視表,則基於相同的源資料,可以將資料透視快取重新用作每個資料透視表的內部資料儲存。這是一種很好的做法,因為它可以節省記憶體並減少用於儲存的 Excel 檔案的大小。

StackOverflow 文件

例如,要根據上圖中顯示的源資料建立資料透視表:

Sub test()
    Dim pt As PivotTable
    Set pt = CreatePivotTable(ThisWorkbook.Sheets("Sheet1").Range("A1:E15"))
End Sub

Function CreatePivotTable(ByRef srcData As Range) As PivotTable
    '--- creates a Pivot Table from the given source data and
    '    assumes that the first row contains valid header data
    '    for the columns
    Dim thisPivot As PivotTable
    Dim dataSheet As Worksheet
    Dim ptSheet As Worksheet
    Dim ptCache As PivotCache
    
    '--- the Pivot Cache must be created first...
    Set ptCache = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
                                                  SourceData:=srcData)
    '--- ... then use the Pivot Cache to create the Table
    Set ptSheet = ThisWorkbook.Sheets.Add
    Set thisPivot = ptCache.CreatePivotTable(TableDestination:=ptSheet.Range("A3"))
    Set CreatePivotTable = thisPivot
End Function

參考 MSDN 資料透視表物件