我正在尝试添加数据透视表过滤器字段,但是我不知道我的代码有什么问题

时间:2019-07-10 14:47:06

标签: excel vba

我正在尝试在数据透视表上选择一个过滤器,但我不知道为什么它不能正确读取我的代码。

说“无法获取PivotField类的PivotItems属性”

Sub Filter_MasterCode()

    Dim pt As PivotTable
    Dim pf As PivotField
    Dim sField As String

    Set pt = ActiveSheet.PivotTables("PivotTable3")
    sField = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text

    For Each pf In pt.PageFields
        If pf.Name <> "Values" Then
            pf.Orientation = xlHidden
        End If
    Next pf

    For Each pf In pt.DataFields
        If pf.Name <> "Values" Then
            pf.Orientation = xlHidden
        End If
    Next pf

    pt.PivotFields(sField).Orientation = xlPageField

    With ActiveSheet.PivotTables("PivotTable3").PivotFields(sField)
      .PivotItems("0").Visible = False
      .PivotItems("1").Visible = True
    End With

    Select Case sField
        Case Is = "Apple"
          With ActiveSheet.PivotTables("PivotTable3").PivotFields("2017")
              .Orientation = xlDataField
          End With
    End Select

.PivotItems("0").Visible = False上显示错误

谢谢

1 个答案:

答案 0 :(得分:1)

在我看来,就像您正在尝试获取馆藏中的第一个PivotItem

PivotItem对象的索引始于1。您正在尝试访问0索引。更改它,看看是否可行。

With ActiveSheet.PivotTables("PivotTable3").PivotFields(sField)
  .PivotItems(1).Visible = False
  .PivotItems(2).Visible = True
End With