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 回答