3

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

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
4

2 回答 2

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

快照

在此处输入图像描述

于 2012-05-02T17:58:18.323 回答
0

在手动复制和粘贴之前,开始录制宏。完成后,停止录制并检查录制的代码。你会得到一堆额外的东西,你可以删除,但你也会得到正确的语法来做你想做的事。

于 2012-05-02T17:47:39.393 回答