AutoHotkey调用VBA实现批量精确筛选数据透视表某字段内容。

如上图,想在数据透视表中只显示红色区域的内容,手动勾选就比较繁琐。
实现思路:
- 先复制红色的内容。
- 鼠标停留在数据透视表【型号】列的任意数据上(通过该单元格可以获取数据透视表和字段)
- 由于数据透视表的字段不能全部取消筛选(至少要保留一项),所以先找到红色内的第一个有效值(本例中的红字本来就是数据源,所以都是有效的,实际使用可能会有不在列表的内容),让数据透视表只显示这一项
- 再循环红色内容,如果在列表内的全部显示(不在列表的也可以提取出来)
clip := Trim(Clipboard, " `t`r`n")
pt := xl.ActiveCell.PivotTable
pf := xl.ActiveCell.PivotField
xl.ScreenUpdating := False
;先找到第一个存在的项目firstItem
Loop, Parse, clip, `n, `r
{
Try
{
pf.PivotItems(A_LoopField)
firstItem := A_LoopField
;MsgBox,% firstItem
Break
}
}
;只显示firstItem
For k In pf.PivotItems
{
If (k.Value = firstItem)
k.Visible := True
Else If k.Visible
k.Visible := False
}
;显示剪切板项目
Loop, Parse, clip, `n, `r
{
Try ;可能项目不在PivotItems里
pf.PivotItems(A_LoopField).Visible := True
;Catch ;记录失败项
;MsgBox,% A_LoopField . "`n显示失败"
}
xl.ScreenUpdating := True
Return
AutoHotkey调用VBA实现批量精确筛选数据透视表某字段内容。的更多相关文章
- 【Excle数据透视表】如何隐藏数据透视表中行字段的”+/-”按钮
如下图:新建的数据透视表中有存在"+/-"符号,导致数据透视图不太美观,那么怎么处理呢? 解决方案 单击"显示"组中的"+/-"按钮显示或隐 ...
- Excel2010数据透视表1
“透视”作为一个动词,意思是旋转.如果将数据看成是一个物体,数据透视表允许旋转数据汇总,从不同角度或观点来看它.数据透视表能够轻松地移动字段,交换字段位置,设置创建项目的特定组. 如果给出一个陌生的物 ...
- 【Excle数据透视表】如何创建非共享缓存的数据透视表
一般情况下,利用同一个数据源创建多个数据表时,默认创建的是共享缓存的数据透视表.刷新一个数据透视表时会影响其他数据透视表的展示结果. 解决方案 创建非共享缓存的多个数据透视表 步骤一 单击工作表数据任 ...
- VBA学习之关于数据透视表的应用
工作中很多地方需要同时处理多个数据表,而且用数据透视表进行排版,排序,计算字段,一个一个的做非常累,这里给出批量处理的方法. 学习VBA之前最好懂一点点VB的基础知识,因为里面的很多语法问题都是由VB ...
- Excel 批量快速合并相同的单元格:数据透视表、宏代码、分类汇总
Excel 批量快速合并相同的单元格 在制作Excel表格的时候,为了使得自己制作的报表更加简洁明了,方便查阅,经常需要合并很多相同的单元格,如果有几千几万条记录需要合并的话,真的会让人发疯.怎样 ...
- 【Excle数据透视表】如何水平并排显示报表筛选区域的字段
原始效果 目标效果 解决方案 设置数据透视表"在报表区域筛选显示字段"为"水平并排" 步骤 方法① 单击数据透视表任意单元格→数据透视表工具→分析→选项→布局和 ...
- VSTO学习笔记(十四)Excel数据透视表与PowerPivot
原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...
- 数据透视表sql:用SQL行列转换实现数据透视的一些思考
用SQL行列转换实现数据透视的一些思考 摘要:根据对报表开发过程中碰到的需要用SQL行列转换进行解决的一类查询统计问题的分析,逐步探索求解得到一种较通用的解决思路,并用函数进行实现.该解决思路及函数实 ...
- EXCEL 2010学习笔记 —— 数据透视表
今天整理一下EXCEL2010 数据透视表的课程笔记,数据透视表可以对多组数据进行统计和整理,是一种基本的数据可视化工具. 记录6个方面的总结: 1.创建数据透视表 2.更改数据透视表的汇总方式 3. ...
随机推荐
- (转)Linux服务器SNMP常用OID
原文:https://www.haiyun.me/archives/linux-snmp-oid.html 收集整理一些Linux下snmp常用的OID,用做服务器监控很不错.服务器负载: 1 2 3 ...
- 转 Hibernate中cascade和inverse的作用
Inverse和cascade是Hibernate映射中最难掌握的两个属性.两者都在对象的关联操作中发挥作用.1.明确inverse和cascade的作用inverse 决定是否把对对象中集合的改动反 ...
- 使用ant宏定义任务
基础basic.xml文件 <?xml version="1.0" encoding="UTF-8"?><project> < ...
- unity 读取外部exe程序控制台信息
由于需要获取显卡信息,但是unity的自带函数,只能输出1个显卡 c#倒是可以但是引用了一个下载的dll System.Management.dll 这个dll放到unity用不了,因为mono不 ...
- Boost application performance using asynchronous I/O-ref
http://www.ibm.com/developerworks/linux/library/l-async/?S_TACT=105AGX52&S_CMP=cn-a-l Introducti ...
- Scrum 冲刺博客第二篇
一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 配置和连接微信小程序服务器 个人界面设计 部主页界面设计 答题界面设计 今 ...
- 在浏览器中输入URL并回车后都发生了什么?
1.解析URL ________________________________________________________________________ 关于URL: URL(Universa ...
- Go.网络篇-2
package main import ( "io/ioutil" "os" "io" "log" "net/ ...
- Java 重写(Override)与重载(Overload)区别
2019-04-1217:31:19 (1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载(Overloading). (2)方法重写是在子 ...
- springboot aop使用介绍
第一步:添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...