『ピボットキャッシュがエラーになる時がある。』(yuma) 初めて投稿します。VBA初心者です。 下記のようなピボットテーブルの自動作成のマクロを作ったのですが、 件数によって動いたり動かなかったりします。。 具体的には300件(行)程度までなら動くのですが、500行以上になると 「型が一致しません」というエラーが出て、SourceDataで止まります。 読み込む量によって変わるものなのでしょうか、、少ない量だと通ってしまうので余計にわからなくなっています。 すいませんがどなたか教えて頂けると助かります。 宜しくお願いします。 Sub ピボットテーブル自動作成() Dim DataS As Worksheet 'データシート Dim PivotS As Worksheet 'ピボットテーブルを作成するシート Dim PCache As PivotCache 'ピボットキャッシュ用変数 Set DataS = ActiveWorkbook.Worksheets("情報精査") '『情報精査』シートからピボットキャッシュを作成 Set PCache = ActiveWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=DataS.Range("A1").CurrentRegion) '『ピボットテーブル』シートを追加 With Worksheets.Add(after:=Worksheets("情報精査")) .Name = "ピボットテーブル" End With Set PivotS = ActiveWorkbook.Worksheets("ピボットテーブル") '『ピボットテーブル』シートにピボットテーブル作成 PCache.CreatePivotTable _ TableDestination:=PivotS.Range("A1"), _ TableName:="電話番号別アイテム数" With ActiveSheet.PivotTables(1) .PivotFields("member_tel1member_tel2member_tel3").Orientation = xlRowField .PivotFields("item").Orientation = xlColumnField .PivotFields("member_tel1member_tel2member_tel3").Orientation = xlDataField End With End Sub < 使用 Excel:Excel2016、使用 OS:Windows10 > ---- エラー停止した際、DataS.Range("A1").CurrentRegion.Address はどうなっているでしょう? イミディエイトウィンドウで以下のように表示してみてください。 ? DataS.Range("A1").CurrentRegion.Address 範囲におかしな点がない場合、SourceData:=DataS.Range("A1").CurrentRegion.Address のように、セル範囲の文字列でソース指定するとどうなるでしょう? (???) 2018/01/17(水) 09:13 ---- エラーが出たあと、手動ではちゃんとできますか? ぱっと見、コードに変なとこは無さそうです。 (変数の使い方とか気になるところはなくはないですが。。。) 参考URL>> http://www.relief.jp/docs/018038.html (まっつわん) 2018/01/17(水) 09:23 ---- このDataS.Range("A1").CurrentRegionのセル範囲のどこかに 255文字を超えるデータがありませんか? もし、該当するなら、 SourceData:=DataS.Range("A1").CurrentRegion.Address(, , xlR1C1, True) の様にアドレス文字で指定するか、 PivotCache.CreatePivotTable メソッド ではなく、PivotTableWizardメソッドを 使えば、SourceData に Rangeオブジェクトを使えると思います。 的外れならスルーして下さい。 (きまぐれ) 2018/01/17(水) 09:47 ---- SourceData:=DataS.Range("A1").CurrentRegion.Address にしたらとおりました!!!! ありがとうございます!!これで2日くらい悩んでいたのでたいへん助かりました、、! またなにかあったら宜しくおねがいします!! (yuma) 2018/01/17(水) 15:06