从已经存在的PivotCache中创buildPivot

我想创build一个新的数据透视表基于用于在另一个工作簿中创build另一个数据透视表的数据。

我已经意识到以下的东西:1)打开包含数据的工作簿2)将包含数据透视表的工作表复制到新的工作簿

现在我想从现有的数据透视表访问caching,并在同一个工作簿的不同工作表上创build一个新的caching。 因此,我使用下面的代码:Set input_pivot_sheet = input_workbook.Worksheets(“Worksheetbblabla”)

'Select right Pivot Table Set pivot_table = input_pivot_sheet.PivotTables(2) 'Create new Excel file Set temp_excel_workbook = Workbooks.Add Application.SheetsInNewWorkbook = 1 'Create supportive Pivot by copying content from old file to new file input_pivot_sheet.Copy After:=temp_excel_workbook.Sheets(1) Set pivot_cache = pivot_table.PivotCache 'Create new Pivot out of this pivot... Set worksheet_1 = temp_excel_workbook.Sheets(1) new_pivot_table = pivot_cache.CreatePivotTable(worksheet_1.Range("A1")) 

此代码失败,因为我得到一个运行时错误5:无效的过程调用或参数在这一行:

 new_pivot_table = pivot_cache.CreatePivotTable(worksheet_1.Range("A1")) 

如何从其他数据透视表访问数据并在另一个工作表上绘制一个新的数据透视表?

利用cyboshu的评论(你可以在问题文章中find它作为评论)我改编了一下我的代码:

  'Switch to right Worksheet - Attention if "blablabka" is renamed...!!!! Set input_pivot_sheet = input_workbook.Worksheets("blabla") 'Create new Excel file Set temp_excel_workbook = Workbooks.Add Application.SheetsInNewWorkbook = 1 'Create supportive Pivot by copying content from old file to new file input_pivot_sheet.Copy After:=temp_excel_workbook.Sheets(1) 'Close old file & newly created one input_workbook.Close temp_excel_workbook.SaveAs Filename:=temp_excel_file_name temp_excel_workbook.Close 'Open new Excel... - not performant... Set temp_excel_workbook = Workbooks.Open(temp_excel_file_name) 'Select right Pivot Table Set pivot_table = temp_excel_workbook.Sheets(2).PivotTables(2) Set pivot_cache = pivot_table.PivotCache 'Create new Pivot out of this pivot... Set worksheet_1 = temp_excel_workbook.Sheets(1) new_pivot_table = pivot_cache.CreatePivotTable(worksheet_1.Range("A1")) 

现在我可以添加字段和行。 谢谢你们!