Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何过滤所有的;“字符串”;从数据透视表中删除_Excel_Vba - Fatal编程技术网

Excel 如何过滤所有的;“字符串”;从数据透视表中删除

Excel 如何过滤所有的;“字符串”;从数据透视表中删除,excel,vba,Excel,Vba,我正在尝试从透视表中筛选出包含字符串“PRC”的所有行。我是通过录制一个宏来实现这一点的,但是当我击键时,我得到了下面的代码(在宏录制中)将每一行单独过滤掉,而不是所有包含“PRC”的行。问题是,当我在下一个报告中使用此宏时,它仅过滤出记录了字符串的完全相同的行,并在下一个报告中不包含完全相同的行(完全相同的字符串)时向我发出错误消息,然后进一步不过滤出不同的行(新的行)。请帮助: With ActiveSheet.PivotTables("PivotTable7").PivotFields("

我正在尝试从透视表中筛选出包含字符串“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

您可以使用
Instr
检查
数据透视项是否包含文本“PRC”,如
如果Instr(PvtItm.Caption,“PRC”)>0则

修改代码

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