如何从数据透视表中筛选出所有“字符串”

时间:2019-09-19 15:41:26

标签: excel vba

我正在尝试从数据透视表中过滤掉包含此字符串“ 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 :(得分:0)

您可以使用PivotItem来检查Instr是否包含文本“ PRC”,例如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