复制数据透视表格式

时间:2012-05-02 17:37:05

标签: excel excel-vba vba

我无法将数据透视表格式复制到新工作表中。基本上我要做的就是:

someRange.Copy
someOtherRange.pasteSpecial xlPasteValues
someOtherRange.pasteSpecial xlPasteFormats

基本上,我想在新工作表中的数据透视表上获得当前视图的精确副本,但我只想要值和格式(并且不再连接到数据透视表)。手动执行此过程会产生正确的结果,但由于某种原因,当我通过vba使用相同的方法时格式化不会复制...思考?

更新 所需的确切代码:

Application.CutCopyMode = False
pivotSheet.Range(pivotSheet.usedRange.Cells(1, 2), pivotSheet.Cells(pivotSheet.usedRange.Rows.Count, pivotSheet.Columns.Count)).Copy
updatesSheet.Range(updatesSheet.Cells(1, 1), updatesSheet.Cells(pivotSheet.usedRange.Rows.Count, pivotSheet.usedRange.Columns.Count)).PasteSpecial xlPasteValues
updatesSheet.Range(updatesSheet.Cells(1, 1), updatesSheet.Cells(pivotSheet.usedRange.Rows.Count, pivotSheet.usedRange.Columns.Count)).PasteSpecial xlPasteFormats
Application.CutCopyMode = False

2 个答案:

答案 0 :(得分:3)

已经过测试

Option Explicit

Sub Sample()
    With Sheets("Sheet1")
        .Range("H1:I6").Copy

        With .Range("M7")
            .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False

            .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        End With
    End With
End Sub

<强>快照

enter image description here

答案 1 :(得分:0)

在手动复制和粘贴之前,请开始录制宏。完成后,停止录制并检查录制的代码。您将获得一些可以删除的额外内容,但是您也可以获得正确的语法来执行您要执行的操作。