[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ピボットテーブルのフィルターの繰り返し』(レフ)
ピボットテーブルで作ったデータをフィルターにかけて、出たデータをシートごと
コピーする、終わったらまた元データのシートでフィルターをかけて・・・
といったことをフィルター内にあるデータ分繰り返すコードを作りたいのですが、
「実行時エラー1004 PivotTable クラスの PivotFields プロパティを取得できません」
と表示されます。
以下のようなコードを書いたのですがどこを直したらよいでしょうか?
よろしくお願いします。
Sub Test1()
Dim PV As PivotTable, PvtItem As PivotItem
Set PV = Worksheets("sheet5").Range("A5").PivotTable
For Each PvtItem In PV.PivotFields("親品目No").PivotItems PV.PivotFields("親品目No").CurrentPage = PvtItem.Name Worksheets("Sheet5").Copy Before:=Worksheets("Sheet5") 'Sheet5の前にシートをコピーする ActiveSheet(2).Name = Range("A6") 'コピーしたシートに名前を付ける
Next End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
>実行時エラー1004 PivotTable クラスの PivotFields プロパティを取得できません というエラーメッセージだけからの推察では、 当該PivotTable内に「親品目No」という名のフィールドが存在しかったのではないか と考えられます。
データソース範囲に「親品目No」列が含まれていないとか。 (例えば「No」(エヌオー)のつもりが実データは「?av(記号)だったり^^;)
以下は「ちなみに」程度のお話ですが、
Worksheets("sheet5").Range("A5")にPivotTableが存在しなかった場合はエラーメッセージが、 「実行時エラー1004:Range クラスの PivotTable プロパティを取得できません」 になろうかと思います。
また、ご提示のプロシージャは 実行前にあらかじめ「親品目No」がレポートフィルターフィールドに配置されている前提のコードですが、 その辺も大丈夫でしょうか? 「親品目No」という名のフィールドそのものは間違いなく有るとしても、 レポートフィルターフィールドにコイツが配置されていなかった場合は 「実行時エラー1004:PivotFields クラスの CurrentPage プロパティを設定できません」 というエラーメッセージが出てくると思います。
(白茶) 2018/11/26(月) 15:55
アドバイスに従ってよく確かめてみると「親品目No」はレポートフィールドではなく
行ラベルに入っていました。
(レフ) 2018/11/27(火) 13:06
ありがとうございました。
(レフ) 2018/11/27(火) 13:14
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.