将数据透视表中的数据复制到另一个工作表中

我有两本练习册 在一个我有一个枢轴表; 在另一个空的工作表。

我试图从数据透视表中的某些数据复制到另一个工作簿,但它似乎像VBA不复制我的select。

目前我写了:

With cevesa.Worksheets("r_hora") On Error Resume Next .PivotTables("r_hora").PivotFields("PARAM").ClearAllFilters .PivotTables("r_hora").PivotSelection = "PARAM['DEM(MW)':'DEM_AGREGADA(MW)','POT(MW)':'POT_HID(MW)','POTDESP(MW)']" Selection.Copy analisis.Worksheets("DATOS Generación").Range("B1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False On error goto 0 End with 

但是,这不会工作,除非我手动激活工作簿与数据透视表。 在我看来,selection.copy行只适用于活动工作簿,而不是指向当前的Pivotselection。

谢谢!

试试下面的代码,在代码的注释里面的解释:

 Option Explicit Sub CopyPivotItemsDataRange() Dim PvtTbl As PivotTable Dim PvtFld As PivotField Dim PvtRng As Range ' set the Pivot-Table object Set PvtTbl = cevesa.Worksheets("r_hora").PivotTables("r_hora") ' set the Pivot-Table Field object Set PvtFld = PvtTbl.PivotFields("PARAM") With PvtFld .ClearAllFilters ' use Union to merge multipe Pivot Items DataRange Set PvtRng = Union(.PivotItems("DEM(MW)").DataRange, .PivotItems("DEM_AGREGADA(MW)").DataRange, _ .PivotItems("POT(MW)").DataRange, .PivotItems("POT_HID(MW)").DataRange) End With PvtRng.Copy ' I let you finish the Paste section End Sub