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字段)仅在字段作为行标签或列标签可见时才有效。如果它不作为行标签或列标签显示,则过滤器不适用并显示所有值。请帮忙!!!