将过滤器添加到数据透视表,不包括作为行标签或列标签的字段

时间:2016-06-09 12:44:17

标签: excel vba excel-vba pivot

Sub Macro2()

Dim pvtCache As PivotCache
Dim pvt As PivotTable
Dim StartPvt As String
Dim SrcData As String

  SrcData = "Data!" & Range("A2:U5641").Address(ReferenceStyle:=xlR1C1)

StartPvt = "abc1!" & Range("A1").Address(ReferenceStyle:=xlR1C1)

Set pvtCache = ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=SrcData)


Set pvt = pvtCache.CreatePivotTable( _
    TableDestination:=StartPvt, _
    TableName:="PivotTable1")


With ActiveSheet.PivotTables("PivotTable1").PivotFields("Operator1")
 .Orientation = xlRowField
 .Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("TEU SIZE")
 .Orientation = xlRowField
 .Position = 1
End With
With ActiveSheet.PivotTables("PivotTable1").PivotFields("AGE CATEGORY")
 .Orientation = xlRowField
 .Position = 2
End With



With ActiveSheet.PivotTables("PivotTable1").PivotFields("TEU")
 .Orientation = xlDataField
 .Position = 1
 .Function = xlSum
End With

With ActiveSheet.PivotTables("PivotTable1").PivotFields("TEU")
 .Orientation = xlDataField
 .Position = 2
 .Function = xlCount
End With

With ActiveSheet.PivotTables("PivotTable1").PivotFields("Operator1")
.ClearAllFilters
.PivotFilters.Add Type:=xlCaptionEquals, Value1:="MOL"
End With

End Sub

以上代码从数据集创建一个轴,并显示所需的行和列。但是,我还需要添加一个过滤器。过滤器(在本例中为Operator1字段)仅在字段作为行标签或列标签可见时才有效。如果它不作为行标签或列标签显示,则过滤器不适用并显示所有值。请帮忙!!!

0 个答案:

没有答案
相关问题