我需要选择数据透视表范围以复制到另一个电子表格的帮助。我需要做的是复制将要搜索的特定“ Project WBS”值的所有行和列。
在下面的代码中,我尝试使用xlDataAndLabel,但它只为我提供了所需的Project WBS和Pivot项目。它省略了“描述”,“员工”和“活动类型”列。我不能使用.EntireRow.Copy,因为当我转到另一个工作簿进行粘贴时,我收到一条错误消息,指出大小太大。
非常感谢您的帮助。
最大
Sub getPivotData()
Dim PvtTbl As PivotTable
Set PvtTbl = Worksheets("Aug 18 Report").PivotTables("PivotTable1")
Worksheets("Aug 18 Report").Activate
Application.PivotTableSelection = True
PvtTbl.PivotSelect "GS136.548", xlDataAndLabel
Selection.Interior.Color = vbYellow
End Sub
答案 0 :(得分:1)
您可以尝试将目标标签范围调整为数据透视表中的列数
例如
Option Explicit
Public Sub test()
Dim pvt As PivotTable, rng As Range
Set pvt = ActiveSheet.PivotTables(1)
With pvt.PivotFields("Project WBS").PivotItems("A").LabelRange
Set rng = Worksheets(pvt.Parent.Name).Range(.Resize(.Rows.Count, pvt.TableRange1.Columns.Count).Address)
Debug.Print rng.Address
End With
End Sub
以下突出显示的区域是打印语句返回的地址
如果在不同的(打开的)工作簿中引用枢轴,以下是一个示例:
Option Explicit
Public Sub test()
Dim pvt As PivotTable, rng As Range
Dim wb As Workbook, ws As Worksheet
Set wb = Workbooks("Book3.xlsb")
Set ws = wb.Worksheets("Sheet1")
Set pvt = ws.PivotTables(1)
With pvt.PivotFields("Project WBS").PivotItems("A").LabelRange
Set rng = ws.Range(.Resize(.Rows.Count, pvt.TableRange1.Columns.Count).Address)
Debug.Print rng.Address
End With
End Sub