作者:绿色风
分类:
时间:2022-08-18
浏览:125
楼主 水星钓鱼 |
Q:如下图所示:
数据很多,图示只是个举例,在工作中经常会碰到统计每个客户的销售额,客户的单位名称有时候不只1个,如D(中国)有限公司、D有限公司等。但它们都具有一个关键词D,所以需要将它们组合在一起。有时候为了统计某个销售人员的销售额,又需要将几个客户组合在一起,比如水星负责的客户的关键词为A、B、D、E。Wise负责的客户的关键词为F、G、H等。当客户特别多时,在创建了数据透视表后手动组合比较耗时,如何用VBA代码实现自动地组合呢? A:在透视表所在的工作表模块代码窗口中输入以下代码: 如下图所示:
- Sub xyf()
- Dim oPT As PivotTable
- Dim oPF As PivotField
- Dim oPI As PivotItem
- Dim oReg As Object
- '利用正则快速地判断是否含关键词
- Set oReg = CreateObject("vbscript.regexp")
- Set oPT = Me.PivotTables(1)
- Set oPF = oPT.PivotFields("客户")
- With oReg
- .Global = True
- .Pattern = "A|B|D|E"
- With oPF
- For Each oPI In .PivotItems
- If oReg.test(oPI) Then
- oPI.Visible = True
- Else
- oPI.Visible = False
- End If
- Next
- .DataRange.Group
- End With
- End With
- End Sub
这样就可以反复利用这个代码批量组合具有关键词的单位了。只需修改.Pattern为对应的关键词即可。 附件如下:
数据透视表.rar
|
2楼 亡者天下 |
水星版主的VBA在透视表中的应用真的是活灵活现! |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一