2011-12-09 21 views
4

アクティブなワークシートのデータを使用して単純なピボットテーブルを作成するマクロをまとめようとしています。実行しようとすると、型の不一致エラーが発生します。デバッガを起動すると、最初のセクションが強調表示されます:ActiveWorkbook.PivotCachesからxlPivotTableVersion10。最初は、TableDestinationは空白で、問題があるかもしれないと思っていましたが、宛先を追加した後も同じエラーが表示されます。VBAでExcelでピボットテーブルを作成するときの型不一致エラー

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ 
SourceData:=ActiveSheet.UsedRange).CreatePivotTable TableDestination:="Sheet1!R3C1", _ 
TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10 

ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(1, 1) 

With ActiveSheet.PivotTables("PivotTable1").PivotFields("Program Name") 
    .Orientation = xlColumnField 
    .Position = 1 
End With 
ActiveSheet.PivotTables("PivotTable1").AddDataField ActiveSheet.PivotTables(_ 
    "PivotTable1").PivotFields("Dollars Awarded"), "Sum of Dollars Awarded", xlSum 
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Dept Head") 
    .Orientation = xlRowField 
    .Position = 1 
End With 

答えて

2

これは私のために(XL2007)を働いた:

Sub Tester() 

    With ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ 
     SourceData:=ActiveSheet.UsedRange) 

     .CreatePivotTable TableDestination:="Sheet1!R3C1", _ 
     TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion10 

    End With 

    With Sheet1.PivotTables("PivotTable1") 
     .PivotFields("Dept Head").Orientation = xlColumnField 
     .PivotFields("Program Name").Orientation = xlRowField 
     .AddDataField .PivotFields("Cost"), "Sum of cost", xlSum 
    End With 

End Sub 

すでに既存の競合ピボットキャッシュ/テーブルを持っていないことを確認してください。

+0

ありがとうございます。それは私に実行時エラー '13'を与えます:この部分にタイプミスマッチがあります: 'ActiveWorkbook.PivotCaches.Add(SourceType:= xlDatabase、_ SourceData:= ActiveSheet.UsedRange).CreatePivotTable _ TableDestination:=" Sheet1!R3C1 "、_ TableName:=" PivotTable1 "、DefaultVersion:= xlPivotTableVersion10' –

+0

1)実行しているExcelのバージョンは何ですか? 2) '' ActiveSheet.UsedRange''が有効であることを確認しましたか? 3)Sheet1はありますか? –

+2

@user:あなたは最初の行で多くのことをしています。それを分割してみてください(私の編集を見てください)。そうした場合、どこでエラーが発生しますか? –