我正在尝试从数据透视表中过滤掉包含此字符串“ 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
答案 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