[[20180116191515]] 『ピボットキャッシュがエラーになる時がある。』(yuma) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ピボットキャッシュがエラーになる時がある。』(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


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.