excel - 如何一次隐藏多个pivotitem
问题描述
有没有办法在单个命令中隐藏 PivotItems 列表?
我正在使用 Excel2010 和标准数据透视,而不是 OLAP 数据源。
我正在寻找一种显着加快代码执行速度的方法。我已经暂停了重新计算,视频刷新,设置.ManualUpdate = True,...
我正在寻找类似pivotfield_list.hide
(或pivotfield_list.visible = False
),甚至更好的东西Hide_list (pivotfield ("xx"), pivotfield_list)
。
让我解释得更好。如果您通过用户界面在数据透视字段中仅选择几个条目,您会很快得到结果。相反,如果此操作是在宏记录器打开的情况下执行的,则会使用 n 个命令进行转换,例如:
With ActiveSheet.PivotTables ("pDoc"). PivotFields ("pir_L4")
.PivotItems ("1208 Costs"). Visible = False
.PivotItems ("1221 - series"). Visible = False
.PivotItems ("1231 - ILS"). Visible = False
.... 等等
如果你然后重新运行宏,时间要长得多(在我的表中有许多可能的值被否定)。
因为我可以通过 GUI 进行大量操作,所以我无法从 VBA 复制它似乎很奇怪。我一直在互联网上寻找解决方案,但没有成功,有什么建议吗?
PS。我发现在数据透视项的连续值的情况下,也可以执行以下命令:
range.delete
但这不是我的情况(不连续的值也不同)。即使通过滑块及其属性,您似乎也没有达到目标。
解决方案
隐藏所有 PivotItems 的最快方法是使感兴趣的 PivotField 成为页面字段,然后使用 .CurrentPage 属性立即过滤该项目。
如果您不希望页面字段区域中的数据透视表,则在看不见的地方设置一个“主”数据透视表,将主数据透视表中的感兴趣字段作为“主”数据透视表中的页面字段,并连接主数据透视表使用切片器到您的数据透视表(“从属”)。然后您可以简单地更改 Master 的 .CurrentPage 属性,然后它会立即通过 Slicer 过滤 Slave。
推荐阅读
- javascript - 在 cytoscape.js 中点击背景时如何禁用取消选择?
- c++ - 默认模板参数和参数包
- java - 如何在 quarkus 中停用特定配置文件中的 url?
- notepad++ - 删除 Notepad++ 中的所有值,方括号中的值除外
- python - 在numpy中识别组中的第一个和最后一个非零元素
- mysql - 4.99 显示为 499 - 将 BIGINT 转换为小数
- excel-formula - 如果第一个单元格有数据,是否有一个 Excel 公式从另一个单元格返回数据?
- xcode - 如何在 Monterey 上运行 Xcode 12.5.1?
- powershell - Azure 自动化 - 将文件从一个 Sharepoint 站点复制到另一个
- pine-script - 如何在 Pine 脚本中获取时间戳?