2017-12-15 11 views
0

別のタブを参照するダイナミックレンジを持つピボットテーブルを作成したいと思います。私は "ランタイムエラー '13' - タイプの不一致"の後にコメント "ピボットキャッシュを定義する"の後に続きます。助言がありますか?ダイナミックレンジのピボットテーブルvbaを作成しようとしています

Sub InsertExportPivotTables() 

'Declare Variables 
Dim PSheet As Worksheet 
Dim DSheet As Worksheet 
Dim PCache As PivotCache 
Dim PTable As PivotTable 
Dim PRange As Range 
Dim LastRow As Long 

'*************Actions by study 
'Insert a New Blank Worksheet for Actions by Study 
Application.DisplayAlerts = False 
Worksheets("Actions by Study").Delete 'deletes worksheet if already exists 
Sheets.Add Before:=ActiveSheet 
ActiveSheet.Name = "Actions by Study" 
Application.DisplayAlerts = True 
Set PSheet = Worksheets("Actions by Study") 
Set DSheet = Worksheets("export") 

'Define Data Range 
LastRow = DSheet.Range("A" & DSheet.Rows.Count).End(xlUp).Row 
Set PRange = DSheet.Range(DSheet.Cells(6, 1), DSheet.Cells(LastRow, "U")) 

'Define Pivot Cache 
Set PCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PRange, Version:=xlPivotTableVersion14) 

'Insert Blank Pivot Table 
Set PTable = PCache.CreatePivotTable(TableDestination:=PSheet.Cells(1, 1), _ 
     TableName:="ActionsbyStudy01", DefaultVersion:=xlPivotTableVersion14) 

End Sub 
+0

おっと。私はこのインスタンスで実際のアドレスを使用し、それは動作するように見えました。 –

+0

エラーの内容を教えてください。質問を更新してください。 – prospector

+0

申し訳ありませんが、エラーは実行時エラー'13 'です:タイプが一致しません –

答えて

0

あなたはPivotCaches.Create名前付き範囲ではなく、範囲オブジェクトを渡すことができます。

のSourceTypexlExternalない場合SourceData引数が必要です。 ( のSourceTypeがxlExternalある場合)この範囲(のSourceTypeである場合のいずれかxlConsolidation 又はxlDatabase)またはExcelワークブック接続オブジェクトを渡さなければなりません。範囲を渡すときは、 に文字列を使用してワークブック、ワークシート、およびセル 範囲を指定するか、名前付き範囲を設定して文字列として渡すことをお勧めします。

範囲オブジェクトを渡すと、予期せず "タイプの不一致"エラーが発生する可能性があります。

Sourceではより多くの情報)それは私が今それを編集してみましょう文句を言わないが、SourceDataはPRANGEに設定する必要があります

+0

でエラーが発生しました名前付き範囲を文字列として渡す方法はありますか? –

+0

私は思う: 'ActiveWorkbook.Names(" yourRangeName ")。RefersToRange' – ashleedawg

関連する問題