ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 数据透视表 > 如何用VBA清理数据透视表下拉列表中的“垃圾条目”?

如何用VBA清理数据透视表下拉列表中的“垃圾条目”?

作者:绿色风 分类: 时间:2022-08-18 浏览:136
楼主
wise
Q:如何用VBA清理数据透视表下拉列表中的“垃圾条目”?
A:ALT+F11→插入模块→在模块中输入如下代码:
  1. Sub ClearMiss()
  2.   Dim pvt As PivotTable, pvtcache As PivotCache
  3.   Dim sh As Worksheet
  4.   '遍历全部工作表
  5.   For Each sh In ActiveWorkbook.Worksheets
  6.   '遍历全部数据透视表
  7.     For Each pvt In sh.PivotTables
  8.     '不保留透视表唯一项
  9.       pvt.PivotCache.MissingItemsLimit = xlMissingItemsNone
  10.     Next
  11.   Next
  12.   On Error Resume Next
  13.   '更新当前工作簿所有透视表缓存
  14.   For Each pvtcache In ActiveWorkbook.PivotCaches
  15.       pvtcache.Refresh
  16.   Next
  17. End Sub
2楼
水星钓鱼
Q:删除了数据源中的某些项目后,通过设置“数据透视表选项“对话框中的“数据”选项卡中的“保留从数据源删除的项目”下的”每个字段保留的项目”设置为无,可以使字段中对应数据源中的项目也被删除。如下图所示:

 
但是假如一个工作簿有很多个数据透视表,则无法批量操作,需要一个一个修改,该如何操作呢?
A:Alt+F11进入VBE编辑环境,在Thisworkbook模块中输入以下代码,按F5执行即可。
  1. Sub xyf()
  2.     Dim oPC As PivotCache
  3.     For Each oPC In Me.PivotCaches
  4.         oPC.MissingItemsLimit = xlMissingItemsNone
  5.     Next
  6.     Me.RefreshAll
  7. End Sub


 

3楼
亡者天下
还是二楼的方法简单啊

VBA太复杂了!
4楼
hessen
我怎么没有哪个设置项?
5楼
paul001
单独去用VBA解决可能复杂化了 如果是个集合工具箱 加入这个功能就很有必要了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap