1

私はVBAの初心者で、初めて投稿するので、ご容赦ください。

ピボット テーブルからデータをコピーし、値を別のワークシートに貼り付けようとしています。ピボットに対する将来の潜在的な変更に対応するために、マクロを可能な限り柔軟にする必要があります。本質的には、(たとえば) A6:E77 をコピーしたいのですが、基になるデータが変更された場合、この行範囲を (A6:G77 ではなく A6:E84 に) 変更する必要がある場合があります。次を使用して、不連続なデータセット内の空白以外の垂直セルをすべて選択できます。

    Range("A6", Range("A1048576").End(xlUp)).Select

ただし、列 A で選択したセルと並んでいる列 B:E のすべてのセルを選択するにはどうすればよいですか?

次のコードを使用してみましたが、End.(xlUp) コマンドを無視しているようです。

    Range("A6:E1048576", Range("A6:E1048576").End(xlUp)).Select

何か案は?私は助けに感謝します:)

4

1 に答える 1

4

関連する Worksheet オブジェクトの PivotTables コレクション内のPivotTableオブジェクトを介して、ピボット テーブルにアクセスできます。

たとえば、 という名前の最初のシートのピボット テーブルには、PivotTable1としてアクセスできますSheet1.PivotTables("PivotTable1")

これらの PivotTable オブジェクトには、DataBodyRange、DataLabelRange、ColumnRange、RowRange、PageRange などの便利なプロパティがあります。これらの範囲は、ピボット テーブルの関連部分を指すように動的に更新されます。

ピボットテーブルの現在の構造を調べることができる RowFields、ColumnFields、DataFields などのプロパティもあります。

ピボットのどの部分をコピーしようとしているのかがわからなければ、具体的なアドバイスはできません。しかし、ここで PivotTable オブジェクトのドキュメントを見ることができます。

于 2013-08-19T16:40:29.413 に答える