2017-10-17 174 views
1

我已經能夠在代碼中創建數據透視表之前,但是添加到新的工作表。我現在試圖將數據透視表添加到現有的工作表中,並且收到錯誤消息「運行時錯誤1004:數據透視表字段名稱無效」。代碼如下,我的錯誤開始於以ActiveWorkbook開始並以xlPivotTableVersion14結尾的最後一段。任何幫助將非常感激。VBA:創建數據透視表

Public Sub AlliedPT() 

Dim AlliedData As String 
Dim SAProw As Long 
Dim PivotSheet As String 

Sheets("Sheet1").Select 
SAProw = Cells(Rows.Count, "A").End(xlUp).Row 

Sheets("Sheet1").Select 
ActiveWorkbook.Names.Add Name:="AlliedData", RefersTo:= _ 
    "=Sheet1!$A$1:$N$" & SAProw 

Sheets("PivotSheet").Select 
PivotSheet = ActiveSheet.Name 

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ 
    "AlliedData", Version:=xlPivotTableVersion14).CreatePivotTable _ 
    TableDestination:=PivotSheet & "!R3C6", TableName:="PivotTable18", 
    DefaultVersion _ 
    :=xlPivotTableVersion14 

End Sub 
+0

不相關,但*爲什麼*你要在'DefaultVersion'參數名稱和你給的':= xlPivotTableVersion14'值之間放置一個換行/延續? –

+0

我跟蹤了宏程序的這一過程。這應該可能被刪除 – oryan5000

+0

同樣的'SourceData:='和''AlliedData「' - 記錄器是非常適合生成低劣的代碼,你應該總是重新格式化它,使它至少是最低限度的體面可讀;-) ...並全部替換具有對象引用和成員調用的'.Select'。 –

回答

1

我想你應該檢查第1行中的第1行A-N,並確保源數據中每列都有一個唯一的非空列名。第一行包含數據透視表字段名稱。