zoukankan      html  css  js  c++  java
  • 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
      

        

  • 相关阅读:
    python多线程
    python Queue
    PHP curl 模拟登陆
    Smarty 插件开发
    Smarty 使用继承方式实现配置
    Smarty include使用
    MongoDB初探系列之二:认识MongoDB提供的一些经常使用工具
    Ubuntu 12.10 安装JDK7
    第17期中国智能家居主题沙龙将于5月23日在京举行
    重温 Win32 API ----- 截屏指定窗体并打印
  • 原文地址:https://www.cnblogs.com/hyaray/p/10550143.html
Copyright © 2011-2022 走看看