2017-01-19 3 views
0

別のブックで別のピボットテーブルを作成するために使用されたデータに基づいて新しいピボットテーブルを作成したいとします。既存のPivotCacheからピボットを作成する

私は、次のものを実現してきました: 1)を開き、データ 2)新しいワークブックにピボットテーブルを含むワークシートをコピーを保持しているワークブックを

そして今、私はからキャッシュにアクセスしたいです既存のピボットテーブルを作成し、同じワークブック内の別のワークシートに新しいワークシートを作成します。したがって、私は、次のコードを使用しています:この行の無効なプロシージャ呼び出しまたは引数:私は実行時エラー5を取得するため、 設定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")) 

このコードは失敗しています:

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

他のピボットテーブルからデータにアクセスし、別のワークシートに新しいピボットテーブルをプロットするにはどうすればよいですか? cyboashuさんのコメントを利用して

+0

'set new_pivot_table = pivot_cache.CreatePivotTable(worksheet_1.Range(" A1 "))'。ピボットテーブルはオブジェクトであるため、それを割り当てるためにピボットテーブルを設定する必要があります。 – Kyle

+0

そうだと思いますが、 'Set'が見つからない場合、エラー5ではなくエラー91が返されます。 – cyboashu

+2

ピボットキャッシュを別の親、つまりワークブックで使用することはできません。 – cyboashu

答えて

1

(あなたが質問のポストにコメントとしてそれを見つけることができます)私は自分のコードを少し適応:

 '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")) 

今、私がフィールドと行を追加することができます。皆さん、ありがとうございました!