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 に答える