2017-06-20 15 views
0

我已經處理了多個模塊,以處理我正在處理的整個腳本,這是唯一對我來說工作不正常的組件。我可以獲得數據透視表的初始設置,但添加Sum字段時會出錯。以下任何反饋將不勝感激。通過工作表的循環數據透視表 - 當AddDataField失敗

Sub PivotChart2() 

    Dim LastRow As Long 
    Dim ws As Worksheet 
    Dim wb As Workbook 

Set wb = ActiveWorkbook 

For Each ws In wb.Sheets 
    If ws.Name = "Sheet1" Or ws.Name = "ZIP_US" Then 
     'Do Noathing 
    Else 

     LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 
     Set PDATA = Range("$A$1:$F" & LastRow) 
     Dim PVTNAME As String 
     Dim PT As PivotTable 

     PVTNAME = Range("$K$1") 

     Sheets(ws.Name).Select 


     ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ 
     PDATA, Version:=6).CreatePivotTable TableDestination:= _ 
     ws.Name & "!R3C10", TableName:=Range("$K$1"), DefaultVersion:=6 



     With ActiveSheet.PivotTables(1).PivotFields("STATE") 
      .Orientation = xlRowField 
      .Position = 1 
     End With 

     With ActiveSheet.PivotTables(1) 
     .AddDataField ActiveSheet.PivotTables(1).PivotFields("SALES"), "Sum of SALES", xlSum 
     End With 

    End If 

Next ws 




     'pvt.PivotFields("STATE").Orientation = xlRowField 
     'pvt.AddDataField pvt.PivotFields("SALES"), "Sum of SALES", xlSum 

End Sub 

代碼的一部分,給我一個錯誤如下:

With ActiveSheet.PivotTables(1) 
     .AddDataField ActiveSheet.PivotTables(1).PivotFields("SALES"), "Sum of SALES", xlSum 
     End With 

錯誤如下:運行時錯誤「1004」:無法獲取的數據透視表類

的透視字段屬性
+0

定義「錯誤」。什麼是你得到的錯誤和在哪一行?它一致嗎? – PeterT

+0

Peter - 感謝您的光臨。我添加了運行宏時收到的錯誤代碼和錯誤代碼。 –

+0

該錯誤通常意味着該字段(本例中爲「SALES」)不作爲數據透視表的一部分。嘗試手動執行您想要的操作並將其捕獲爲錄製的宏,並查看它如何進行比較。 – PeterT

回答

0

彼得 - 正如你所說我需要處理這個手動序列和審查代碼。我剛剛這樣做,發現有問題的線路需要修改爲:

ActiveSheet.PivotTables(1).AddDataField ActiveSheet.PivotTables(_ 
     1).PivotFields("SALES"), "Sum of SALES", xlSum 
+0

請注意,我在Excel 2016中構建了自己的代碼,並且在2010年處理時無法使用。所以我會回顧一下,看看我能做些什麼來完成這項工作 –