Excel VBA更改数据透视表的数据源

好吧,我筛选了大量的post,无法让我的代码运行。 我试图创build一个和解报告,我已经运行得很好。 当我试图把每个月的报告粘贴到主对帐文件时,问题就出现了。 我有一切工作完美,除了我不能为我的生活弄清楚为什么我的数据透视表源不会改变。

我得到的代码是这样的错误:

运行时错误“1004”:应用程序定义或对象定义的错误

有什么build议么? : – \

Dim SrcData As String Dim PivTbl As PivotTable SrcData = ActiveSheet.Name & "!" & Range("$A$1:$H$" & LastRow).Address(ReferenceStyle:=xlR1C1) On Error Resume Next Set PivTbl = Sheets("Report").PivotTables("ReportPivot") On Error GoTo 0 If PivTbl Is Nothing Then 'create pivot Else ActiveWorkbook.PivotTables(PivTbl).ChangePivotCache ActiveWorkbook. _ PivotCaches.Create(SourceType:=xlDatabase, SourceData:=SrcData, _ Version:=xlPivotTableVersion15) PivTbl.RefreshTable End If 

由于问题在这里:

  ActiveWorkbook.PivotTables(PivTbl).ChangePivotCache ActiveWorkbook. _ PivotCaches.Create(SourceType:=xlDatabase, SourceData:=SrcData, _ Version:=xlPivotTableVersion15) 

我猜你不能得到一个数据透视表传递表本身作为参数: .PivotTables(PivTbl)

PivTbl已经是你想要的表了。

 PivTbl.ChangePivotCache.......