1

Excel の異なるワークシートに複数のピボット テーブルがあります (ワークシートごとに 1 つ)。それらをすべて新しいワークシートにコピーしたいのですが、それぞれの間に2行のギャップを置いて互いに下に置きたいです。

あるワークシートから別のワークシートにテーブルをコピーするコードがありますが、前のテーブルに貼り付けずに別のワークシートを同じワークシートにコピーする方法がわかりません....

'Copy table 1
Sheet1.PivotTables(1).TableRange2.Copy
With Sheet7.Range(Sheet1.PivotTables(1).TableRange2.Address)
    .PasteSpecial xlPasteValuesAndNumberFormats
    .PasteSpecial xlPasteColumnWidths
End With
Application.CutCopyMode = False

各ピボット テーブルは高さ (および幅) を動的にすることができるため、後続のテーブルのオフセットは前のテーブルのサイズに依存します....

これを実装する方法を知っている人はいますか?

4

1 に答える 1

0
Sub CopyPT()

Dim rngDest As Range
Dim sht As Worksheet, tr As Range

    Set rngDest = Sheet7.Range("B2")

    For Each sht In ThisWorkbook.Worksheets

        If sht.Name <> Sheet7.Name Then
            If sht.PivotTables.Count = 1 Then
                Set tr = sht.PivotTables(1).TableRange2
                'Debug.Print sht.Name, tr.Rows.Count
                tr.Copy
                With rngDest
                    .PasteSpecial xlPasteValuesAndNumberFormats
                    .PasteSpecial xlPasteColumnWidths
                End With
                Set rngDest = rngDest.Offset(tr.Rows.Count + 2, 0)
            End If
        End If

    Next sht

    Application.CutCopyMode = False

End Sub
于 2012-07-16T21:03:17.200 に答える