[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ピボットキャッシュがエラーになる時がある。』(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
範囲におかしな点がない場合、SourceData:=DataS.Range("A1").CurrentRegion.Address のように、セル範囲の文字列でソース指定するとどうなるでしょう?
(???) 2018/01/17(水) 09:13
参考URL>>
http://www.relief.jp/docs/018038.html
(まっつわん) 2018/01/17(水) 09:23
もし、該当するなら、
SourceData:=DataS.Range("A1").CurrentRegion.Address(, , xlR1C1, True)
の様にアドレス文字で指定するか、
PivotCache.CreatePivotTable メソッド ではなく、PivotTableWizardメソッドを
使えば、SourceData に Rangeオブジェクトを使えると思います。
的外れならスルーして下さい。
(きまぐれ) 2018/01/17(水) 09:47
またなにかあったら宜しくおねがいします!!
(yuma) 2018/01/17(水) 15:06
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.