Я пытаюсь добавить в поле фильтра сводки, но я не знаю, что не так с моим кодом - PullRequest
1 голос
/ 10 июля 2019

Я пытаюсь выбрать фильтр в моей сводной таблице, и я не знаю, почему он неправильно читает мой код.

Он говорит: «Невозможно получить свойство PivotItems класса PivotField»

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 Ответ

1 голос
/ 10 июля 2019

Похоже, вы пытаетесь получить первый PivotItem в коллекции.

Индекс для PivotItem объекта начинается с 1. Вы пытаетесь получить доступ к индексу 0. Измените это и посмотрите, работает ли это.

With ActiveSheet.PivotTables("PivotTable3").PivotFields(sField)
  .PivotItems(1).Visible = False
  .PivotItems(2).Visible = True
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...