Как отфильтровать всю «строку» из сводной таблицы - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь отфильтровать все строки, содержащие эту строку "PRC", из моей сводной таблицы.Я делал это путем записи макроса, но когда я нажал клавишу, я получил код ниже, который (в записи макроса) отфильтровывал каждую строку отдельно, а не все строки, содержащие «PRC».Проблема в том, что когда я использую этот макрос для следующего отчета, он отфильтровывает только те же самые строки с записанными строками и выдает мне сообщение об ошибке, когда точно такая же строка (точная строка) не включена в следующий отчет,и затем далее не отфильтровывает различные строки (новые).Пожалуйста, помогите:

With ActiveSheet.PivotTables("PivotTable7").PivotFields("Part Description")
    .PivotItems("PRC,4214,2.2,16.5MB,CLX,L1").Visible = False
    .PivotItems("PRC,4214Y,2.2,16.5MB,CLX,L1").Visible = False
    .PivotItems("PRC,5215,2.5,13.75MB,CLX,L1").Visible = False
    .PivotItems("PRC,6137,3.9,24.75MB,SKL,H0").Visible = False
    .PivotItems("PRC,6146,3.2,24.75MB,SKL,H0").Visible = False
    .PivotItems("PRC,6226,2.7,19.25MB,CLX,B1").Visible = False
    .PivotItems("PRC,6230N,2.3,27.5MB,CLX,B1").Visible = False
    .PivotItems("PRC,6246,3.3,24.75MB,CLX,B1").Visible = False
    .PivotItems("PRC,7251,2.1,32M,ONP,120W,B2").Visible = False
    .PivotItems("PRC,7281,2.1,32M,ONP,155W,B2").Visible = False
    .PivotItems("PRC,7301,2.2,64M,ONP,155W,B2").Visible = False
    .PivotItems("PRC,7351,2.4,64M,ONP,155W,B2").Visible = False
    .PivotItems("PRC,7351P,2.4,64M,ONP,155W,B2").Visible = False
    .PivotItems("PRC,7371,3.1,64M,ONP,200W,B2").Visible = False
    .PivotItems("PRC,7401,2.0,64M,ONP,155W,B2").Visible = False
    .PivotItems("PRC,7401P,2.0,64M,ONP,155W,B2").Visible = False
    .PivotItems("PRC,7551,2.0,64M,ONP,180W,B2").Visible = False
    .PivotItems("PRC,7601,2.2,64M,ONP,180W,B2").Visible = False
End With

1 Ответ

0 голосов
/ 19 сентября 2019

Вы можете проверить, состоит ли PivotItem из текста "PRC", используя Instr, например If InStr(PvtItm.Caption, "PRC") > 0 Then.

Модифицированный код

Option Explicit

Sub FilterPivotItems()

Dim PvtItm As PivotField
Dim PvtTbl As PivotTable

'Set the Pivot Table object
Set PvtTbl = ActiveSheet.PivotTables("PivotTable7")

' loop through Pivot-items
For Each PvtItm In PvtTbl.PivotFields("Part Description")
    If InStr(PvtItm.Caption, "PRC") > 0 Then
        PvtItm.Value = False
    End If
Next PvtItm

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...