我一直在尝试创建sub,这有助于通过选择几个条形码来过滤商品列表 . 我知道我可以手动完成,但它很长很令人沮丧,因为大约有2000个独特的条形码 . 我已经记录了一个宏,并在这里找到了一些类似的答案,但是我得到一个错误“运行时错误'1004':应用程序定义或对象定义的错误'当PI.value被赋值为true或false时它会卡住:”PI .Visible = True; Pi.Visible = False“ .
码:
Private Sub CommandButton1_Click()Dim MyNames()As Variant
Dim objPivotField作为PivotField
昏昏欲睡
Dim PI As PivotItem
设置objPivotField = _
. ActiveSheet.PivotTables( “PivotTable1”)透视字段(指数:= “[Prekė] [Barkodas] [Barkodas]”)
MyNames = Array(“4770349225872”,“4770033220077”,“7622400004773”)
使用ActiveSheet.PivotTables(“PivotTable1”) . PivotFields(索引:=“[Prekė] . [Barkodas] . [Barkodas]”)
对于i = LBound(MyNames)到UBound(MyNames)
对于每个PI In .PivotItems
如果PI.Name = MyNames(i)那么
PI.Visible = True
其他
PI.Visible = False
万一
下一个PI
下一个我
以End Sub结束
这是我为过滤录制的宏:
ActiveSheet.PivotTables(“PivotTable1”) . PivotFields(_
“[Prekė] . [Barkodas] . [Barkodas]”) . VisibleItemsList = Array(“”,_
“[Prekė] . [Barkodas] . &[4750398000132]”,“”,“[Prekė] . [Barkodas] . &[4046234141238]”,_
“[Prekė] . [Barkodas] . &[4770248342625]”)
1 回答
如上面的注释中所述,这是我用Vbar过滤数据透视表的方法:
运行此脚本根据MyNames过滤PivotTable1: