Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3980|回复: 5

[已解决]Excel 透 视 图 筛选

[复制链接]
发表于 2021-4-25 21:54 | 显示全部楼层 |阅读模式
本帖最后由 yahoo_sun 于 2021-4-26 23:52 编辑

小白求助:
透 视图某个字段点击以后弹出类似筛选的复选框,请问如何使用VBA进行反选?

最佳答案
2021-4-26 15:45
1、二楼说的对,这种东西不属于常规代码,平时用得少,属性和方法又多,不可能记得住的,只能是先录制宏,然后再稍微修改下就成了;

2、透视表筛选录制宏得到的代码大致如下:
    With ActiveSheet.PivotTables("我的透视表").PivotFields("年度")
        .PivotItems("14").Visible = False
        .PivotItems("15").Visible = False
        .PivotItems("16").Visible = False
    End With


3、每一个子项都是一个数据明细,因此可以利用循环或者你自己的条件来控制明细数量,下面是个最简单的例子:
     Dim arr(4)
     arr(1) = "13"
     arr(2) = "14"
     arr(3) = "15"
     arr(4) = "16"
     For i = 2 To 3
          ActiveSheet.PivotTables("我的透视表").PivotFields("年度").PivotItems(arr(i)).Visible = False
     Next i


     其效果是隐藏了第 2 个和第 3 个明细,而第 1个第 4 个明细仍然是显示的;
     关于获取数据源的全部明细子项,我建议用字典;

发表于 2021-4-26 09:52 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2021-4-26 11:11 | 显示全部楼层
砂海 发表于 2021-4-26 09:52
把 相关的操作 , 录制 宏

录制宏只能选筛选里的内容,有100个item,其中选96个,录制能达到选96个的效果,但是item更新后比较难维护。
回复

使用道具 举报

 楼主| 发表于 2021-4-26 14:10 | 显示全部楼层
本帖最后由 yahoo_sun 于 2021-4-26 23:45 编辑

发现这个筛选只能用VisibleItemList去选,PivotItems娶不到值
  1. ActiveSheet.PivotTables("PivotTable1").PivotFields( _
  2.         "[DIM PLU PROJECT].[Hierarchy].[PROJECT ID]").VisibleItemsList = Array( _
  3.         "[DIM PLU PROJECT].[Hierarchy].[PROJECT ID].&[0]", "[DIM PLU PROJECT].[Hierarchy].[PROJECT ID].&[1]")
复制代码
回复

使用道具 举报

发表于 2021-4-26 15:45 | 显示全部楼层    本楼为最佳答案   
1、二楼说的对,这种东西不属于常规代码,平时用得少,属性和方法又多,不可能记得住的,只能是先录制宏,然后再稍微修改下就成了;

2、透视表筛选录制宏得到的代码大致如下:
    With ActiveSheet.PivotTables("我的透视表").PivotFields("年度")
        .PivotItems("14").Visible = False
        .PivotItems("15").Visible = False
        .PivotItems("16").Visible = False
    End With


3、每一个子项都是一个数据明细,因此可以利用循环或者你自己的条件来控制明细数量,下面是个最简单的例子:
     Dim arr(4)
     arr(1) = "13"
     arr(2) = "14"
     arr(3) = "15"
     arr(4) = "16"
     For i = 2 To 3
          ActiveSheet.PivotTables("我的透视表").PivotFields("年度").PivotItems(arr(i)).Visible = False
     Next i


     其效果是隐藏了第 2 个和第 3 个明细,而第 1个第 4 个明细仍然是显示的;
     关于获取数据源的全部明细子项,我建议用字典;

回复

使用道具 举报

 楼主| 发表于 2021-4-26 23:44 | 显示全部楼层
hfwufanhf2006 发表于 2021-4-26 15:45
1、二楼说的对,这种东西不属于常规代码,平时用得少,属性和方法又多,不可能记得住的,只能是先录制宏, ...

感谢大神的回复,试了一下,.PovitItems属性获取不到。
暂时还是用VisibleItemsList去处理了。
感谢感谢.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 13:05 , Processed in 0.249060 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表