Excel 在多个轴字段中折叠一个轴字段

Excel 在多个轴字段中折叠一个轴字段,excel,pivot-table,vba,Excel,Pivot Table,Vba,我有一个包含几个字段的数据透视表,我只希望有一个数据透视字段被折叠。我似乎不能让它工作,所以我想得到一些帮助 Dim pt As PivotTable Dim pr As Range Dim pc As PivotCache Set pr = dataSht.UsedRange Set pc = wb.PivotCaches.Create(xlDatabase, SourceData:=pr) Set pt = pc.createPivotTable(wb.Worksheets(shtNam

我有一个包含几个字段的数据透视表,我只希望有一个数据透视字段被折叠。我似乎不能让它工作,所以我想得到一些帮助

Dim pt As PivotTable
Dim pr As Range
Dim pc As PivotCache


Set pr = dataSht.UsedRange
Set pc = wb.PivotCaches.Create(xlDatabase, SourceData:=pr)
Set pt = pc.createPivotTable(wb.Worksheets(shtName).Range("A1"), strPivotName)


With pt

.PivotFields("One").Orientation = xlRowField
.PivotFields("One").Subtotals(1) = False
.PivotFields("Two").Orientation = xlRowField
.PivotFields("Two").Subtotals(1) = False
.PivotFields("Three").Orientation = xlRowField
.PivotFields("Three").Subtotals(1) = False
.PivotFields("Four").Orientation = xlRowField
.PivotFields("Four").Subtotals(1) = False


With .PivotFields("Sum of $$$ (000)")
        .Orientation = xlDataField
        .Caption = "% Total"
        .Calculation = xlPercentOfParent
        .BaseField = "Two"
        .NumberFormat = "0.00%"

End With
我想把最后一块地塌下来,四块。将
.PivotFields(“四”).showtail=False添加到我的第一个With结尾会导致应用程序定义或对象定义的错误。“ShowDetails”的结果也是一样的

或者,我也尝试过使用DrillTo,尽管我不太了解它,但在结束后使用以下功能:

Dim pi as PivotItem
pi.DrillTo Field:= "Three"
我又犯了一个错误。未设置对象变量或带块变量


我的头还在绕着VBA,所以如果有人能帮我,那就太好了

找到了!因此,对于未来可能有类似问题的用户:

我必须提升一个级别,专门识别pivot表,因为它不能在pt的
中工作

因此,在我的问题中的上述代码之后,我添加了

pt.TableStyle2 = "PivotStyleMedium3"
pt.PivotFields("Three").ShowDetail = False

end With

为什么它在我的第一个
块中不起作用,我不知道,但至少它起作用了。我的猜测是,在pivot表完全创建之前,无法对其进行操作。大概耸耸肩

Hmm。这对我来说也很有效,我试图让它在带有
块的
中工作,但没有效果。谢谢:)