Sub 透視()
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Sheet1!R1C1:R1048576C1", Version:=xlPivotTableVersion15).CreatePivotTable TableDestination:="Sheet2!R1C14", TableName:="資料透視表1", DefaultVersion:=xlPivotTableVersion15
"建立一處快取,儲存要處理成資料透視表的資料資訊,括號內輸入獲取資料的所需引數:SourceType:=資料來源型別,一般是xlDatabase(基於xl的資料庫型別),SourceData:=所要選取的資料區域,Version:=建立資料透視表的表型別,
"CreatePivotTable用這塊快取資料來建立資料透視表,括號內輸入建立資料透視表所需引數:TableDestination:=輸出表的位置,TableName:=建立資料透視表的名稱(表名不能重複),DefaultVersion:=資料透視表版本號,必須與之前建立快取時版本號相同
"在選擇資料來源的時候,由於資料行列數通常不確定(也會出現源資料欄位的數量有變化的情況,可用變數strSourceData
Sheets("Sheet2").Activate "後臺開啟該輸出表
Sheets("Sheet2").PivotTables("資料透視表1").AddDataField ActiveSheet.PivotTables("資料透視表1").PivotFields("使用者編號"), "計數:使用者編號", xlCount
"Sheets("輸出表").PivotTables("資料透視表表名").AddDataField ActiveSheet.PivotTables("資料透視表表名").PivotFields("統計欄位"), "求和:統計欄位", xlSum
"Sheets("輸出表").PivotTables("資料透視表表名").PivotFields是當前工作表中資料透視表"資料透視表表名"裡面包含全部欄位的集合,是一個數組,可用for each迴圈
With Sheets("Sheet2").PivotTables("資料透視表1").PivotFields("使用者編號") "With Sheets("輸出表").PivotTables("資料透視表表名").PivotFields("行欄位1")
.Orientation = xlRowField "表示該統計欄位在資料透視表中的位置為行欄位(列欄位是xlColumnField)
.Position = 1 "表示該行欄位1所在行欄位的位置為第1個位置
End With
" Sheets("輸出表").PivotTables("資料透視表表名").RowAxisLayout xlTabularRow "使行欄位能在同一行顯示
" With Sheets("輸出表").PivotTables("資料透視表表名").PivotFields("列欄位1")
" .Orientation = xlColumnField "表示該列欄位在資料透視表中的位置為列欄位(行欄位是xlRowField)
" .Position = 1 "表示該列欄位1所在列欄位的位置為第1個位置
" End With
End Sub
Sub 透視()
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Sheet1!R1C1:R1048576C1", Version:=xlPivotTableVersion15).CreatePivotTable TableDestination:="Sheet2!R1C14", TableName:="資料透視表1", DefaultVersion:=xlPivotTableVersion15
"建立一處快取,儲存要處理成資料透視表的資料資訊,括號內輸入獲取資料的所需引數:SourceType:=資料來源型別,一般是xlDatabase(基於xl的資料庫型別),SourceData:=所要選取的資料區域,Version:=建立資料透視表的表型別,
"CreatePivotTable用這塊快取資料來建立資料透視表,括號內輸入建立資料透視表所需引數:TableDestination:=輸出表的位置,TableName:=建立資料透視表的名稱(表名不能重複),DefaultVersion:=資料透視表版本號,必須與之前建立快取時版本號相同
"在選擇資料來源的時候,由於資料行列數通常不確定(也會出現源資料欄位的數量有變化的情況,可用變數strSourceData
Sheets("Sheet2").Activate "後臺開啟該輸出表
Sheets("Sheet2").PivotTables("資料透視表1").AddDataField ActiveSheet.PivotTables("資料透視表1").PivotFields("使用者編號"), "計數:使用者編號", xlCount
"Sheets("輸出表").PivotTables("資料透視表表名").AddDataField ActiveSheet.PivotTables("資料透視表表名").PivotFields("統計欄位"), "求和:統計欄位", xlSum
"Sheets("輸出表").PivotTables("資料透視表表名").PivotFields是當前工作表中資料透視表"資料透視表表名"裡面包含全部欄位的集合,是一個數組,可用for each迴圈
With Sheets("Sheet2").PivotTables("資料透視表1").PivotFields("使用者編號") "With Sheets("輸出表").PivotTables("資料透視表表名").PivotFields("行欄位1")
.Orientation = xlRowField "表示該統計欄位在資料透視表中的位置為行欄位(列欄位是xlColumnField)
.Position = 1 "表示該行欄位1所在行欄位的位置為第1個位置
End With
" Sheets("輸出表").PivotTables("資料透視表表名").RowAxisLayout xlTabularRow "使行欄位能在同一行顯示
" With Sheets("輸出表").PivotTables("資料透視表表名").PivotFields("列欄位1")
" .Orientation = xlColumnField "表示該列欄位在資料透視表中的位置為列欄位(行欄位是xlRowField)
" .Position = 1 "表示該列欄位1所在列欄位的位置為第1個位置
" End With
End Sub