2017-07-30 177 views
0

我有一個數據透視表並記錄在宏中。手動執行時,我能夠顯示所需的輸出,但是當我運行我的宏時,數據透視表顯示不同。excel宏創建數據透視表與列標籤

這是我的預期產出。

Count of Date Occurred Column Labels        
Row Labels 17.07.2017 18.07.2017 19.07.2017 20.07.2017 21.07.2017 22.07.2017 23.07.2017 24.07.2017 Grand Total 
100117975   1      1 
100117976    1     1 
100117977  1       1 
100117979      1   1 
100117982 1        1 
100117988    1     1 
100117991 2 2 2  1   1 8 

以下是宏中的記錄代碼。

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ 
    "DataDump!R1C1:R373C4", Version:=xlPivotTableVersion14).CreatePivotTable _ 
    TableDestination:="DataResult!R1C1", TableName:="PivotTableResult", _ 
    DefaultVersion:=xlPivotTableVersion14 
Sheets("DataResult").Select 
Cells(1, 1).Select 
With ActiveSheet.PivotTables("PivotTableResult").PivotFields("Date Occurred") 
    .Orientation = xlColumnField 
    .Position = 1 
End With 
With ActiveSheet.PivotTables("PivotTableResult").PivotFields("ID") 
    .Orientation = xlRowField 
    .Position = 1 
End With 
ActiveSheet.PivotTables("PivotTableResult").AddDataField ActiveSheet.PivotTables(_ 
    "PivotTableResult").PivotFields("Date Occurred"), "Count of Date Occurred", xlCount 

以下是宏的輸出。

Row Labels Count of Date Occurred 
100117975 1 
100117976 1 
100117977 1 
100117979 1 
100117982 1 
100117988 1 
100117991 8 
100117992 2 
100117993 7 

任何幫助將不勝感激。

+1

請嘗試在AddDataField行之後移動第一個With/End With塊。 – pnuts

+0

我想這樣做,但拿到了運行時錯誤450 'ActiveSheet.PivotTables( 「PivotTableResult」)。AddDataField 隨着ActiveSheet.PivotTables( 「PivotTableResult」)。透視字段( 「ID」) .Orientation = xlRowField 。位置= 1點 結束隨着 ActiveSheet.PivotTables(_ 「PivotTableResult」)。透視字段( 「日期發生」), 「日期計數發生」,xlCount' – SlickTrick

+0

'ActiveSheet.PivotTables( 「PivotTableResult」)。AddDataField ActiveSheet.PivotTables (_ 「PivotTableResult」)。PivotFields(「發生的日期」),「發生的日期計數」,xlCount'全部都是一行('_'「延伸」它 - 只是導致它包裝) xlCount',開始一個新行。 – pnuts

回答

0

我在添加數據之後複製了第一個WIth/End塊,它工作正常。第一個塊應該仍然存在