回覆列表
  • 1 # 使用者527073677991

    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

  • 中秋節和大豐收的關聯?
  • 邶風燕燕的全文注音?