将数据透视表中的数据复制到另一个工作表中
问题描述:
我有两个工作簿;在一个我有一个枢轴表;另一个是空的工作表。将数据透视表中的数据复制到另一个工作表中
我想从数据透视表中的某些数据复制到其他工作簿,但它似乎像VBA不复制我的选择。
目前,我已经写了:
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
+0
谢谢,这确实管用 –
你可以'cevesa.Activate'和'cevesa.Worksheets( “r_hora”)Activate' – Slai