[[20160210164256]] 『複数のピボットテーブルのあるシートを違うシート』(コーン茶) ページの最後に飛ぶ

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

 

『複数のピボットテーブルのあるシートを違うシートにコピーした場合のデータソースの一括変更』(コーン茶)

毎月同じ項目(列)のデータが1ブックずつあります。
まずひと月分のブックで、1つのシートに同じデータ範囲を参照先とした10数個のピボットテーブルを作り、そのピボットテーブルのシートをほかの月のブックにシートごとコピーした場合、コピーしたピボットテーブルの参照先は元のデータの範囲を参照先としてしまっています。
これを一括して、コピー先のデータ範囲に変えることはできないでしょうか?

・各月のデータは件数(行)は違うものの、すべて同じ様式になっています。(ひと月1ブックというのは決められているので12か月分まとめたブックにはできない。要領も大きすぎて無理)
・各月のデータ範囲はすべて同じ名前が定義されている。

お分かりになる方がいましたらご教示いただきたく。よろしくお願いいたします。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


1)ピボットのあるシートを、他の月のブックにコピーではなく
2)他の月のブックのシートをピボットのブックにコピーし、不要シートを削除
3)別名で保存

こんな感じだと何か問題ありますか。

マクロ使ってもよいのであれば

 Sub test()
    Dim s
    Dim pvt As PivotTable

    For Each pvt In ActiveSheet.PivotTables
        s = Split(pvt.SourceData, "!")
        pvt.SourceData = s(UBound(s))
    Next

 End Sub

(マナ) 2016/02/11(木) 13:00


マナさん
ありがとうございます。
ベースデータがピボット以外にもいろいろなデータとリンクしているので、
できればピボットを元データに追加した形にしたかったのです。

でも、このマクロもとても参考になります。ほかのデータ作成時にはとても役立ちそうなので、試してみたいと思います!

(コーン茶)
(コーン茶) 2016/02/11(木) 13:41


説明不足でした。
 前段の手操作の提案と後段のマクロは別物です。
 マクロは、参照先を元ブックから自シートに変更しているだけですので
 おそらく期待通りの結果が得られると思います。よろしければお試し下さい。
 コピーしたシートを選択した状態でマクロを実行します。

(マナ) 2016/02/11(木) 14:28


マナさま
試してみたところ、思っていた通りの結果になりました!
とても助かりました。ありがとうございました!

コーン茶
(コーン茶) 2016/02/12(金) 14:37


コメント返信:

[ 一覧(最新更新順) ]


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