我设置了一个数据透视表(参见图片以获得更好的想法)。我正在尝试根据国家/地区从数据透视表中提取数据。您可以看到行国家/地区可以访问行区域,行区域可以访问行产品。我想在以下约束条件下复制数据:France
以获取区域,所有产品和价格总和,并将其移至sheet2。
我的想法是如何解决这个问题,但当前的属性/方法不支持select方法。我怎样才能选择法国的所有数据?
Sheets("MY Pivot").PivotTables("MY_Pivot").PivotFields("Country").PivotItems("France" _
).ShowDetail = True 'Show pivot item
Sheets("MY Pivot").PivotTables("MY_Pivot").PivotFields("Country").PivotItems("France" _
).Select 'Select pivot item to copy
Selection.Copy 'Copy the pivot items
Sheets("Sheet2").Range("A1").Select 'Select sheet cell for paste
Sheets("Sheet2").Paste 'Paste the selected France results
答案 0 :(得分:1)
您可以将.PivotItems("France").DataRange.EntireRow
复制到“Sheet2”,而无需使用Select
。
<强> 代码 强>
Option Explicit
Sub CopyPivotItemDataRange()
Dim PvtTbl As PivotTable
Dim PvtFld As PivotField
' set the Pivot Table object
Set PvtTbl = Sheets("MY Pivot").PivotTables("MY_Pivot")
' set the Pivot Field object
Set PvtFld = PvtTbl.PivotFields("Country")
With PvtFld
.PivotItems("France").ShowDetail = True 'Show pivot item
' copy >> paste the entire Range data under "France" to "Sheet2"
.PivotItems("France").DataRange.EntireRow.Copy Destination:=Sheets("Sheet2").Range("A1")
End With
End Sub