我对Property DataBodyRange
有疑问我有一个简单的数据透视表(D列到F列的范围),有3列:
Dim PvtSht As Worksheet
Dim pvtFld As PivotField
Dim pvt As PivotTable
Dim i As Long
Dim data_fields As Variant
data_fields = Array("ACCNTNUM", "ACCNTNAME", "PRICE")
PvtSht.PivotTables("PivotTable1").RowAxisLayout xlTabularRow
For i = 0 To UBound(data_fields)
Set pvtFld = pvt.PivotFields(data_fields(i))
pvtFld.Orientation = xlRowField
PvtSht.PivotTables("PivotTable1").PivotFields(data_fields(i)).Subtotals(1) = False
PvtSht.PivotTables("PivotTable1").ColumnGrand = False
Next
最终,我想改变表的格式。因此,我需要DataBodyRange,以便VBA知道需要应用更改的位置。但是当我检查这个DataBodyRange时:
Debug.Print pvt.DataBodyRange.Addres
它只给出了最后一列(F)的范围。一旦我删除了一列,它仍然给我最后一列(E)的范围。
数据透视表从这里开始
Set pvt = PvtSht.PivotTables.Add(PivotCache:=pvtCache, TableDestination:=PvtSht.Range("D3"), TableName:="PivotTable1")
所以我的问题是,如何更改DataBodyRange以便定义整个表(D:F),而不仅仅是一列(F)。
如果其中任何一项不够清楚,请告诉我。