首页 > 其他分享 >快速循环切换Excel表格数据筛选器

快速循环切换Excel表格数据筛选器

时间:2024-09-24 12:49:15浏览次数:3  
标签:KB sCrit 表格 代码 Excel AutoFilter oTab 筛选

工作表中数据如下图所示。

在这里插入图片描述

现在需要添加按钮,实现C列的循环筛选,如下图所示。如果当前表格未启用筛选功能,则首次筛选值为KB-L。

请添加图片描述

示例代码如下。

Sub CycleFilter()
    Dim aCrit, i As Long, oTab As ListObject, iCol As Long
    Dim sCrit As String
    Const KEYS = "KB-L KB-P KB-C KB-T KB-- KB-L"
    Const TARGET_COL = "Business Unit"
    aCrit = Split(KEYS)
    Set oTab = ActiveSheet.ListObjects(1)
    iCol = oTab.ListColumns(TARGET_COL).Index
    If oTab.AutoFilter Is Nothing Then
        oTab.Range.AutoFilter
    End If
    If oTab.AutoFilter.FilterMode Then
        If oTab.AutoFilter.Filters(iCol).On Then
            sCrit = Mid(oTab.AutoFilter.Filters(iCol).Criteria1, 2)
            sCrit = aCrit((InStr(1, KEYS, sCrit) \ 5) + 1)
        Else
            sCrit = "KB-L"
        End If
    Else
        sCrit = "KB-L"
    End If
    If sCrit = "KB--" Then 
        oTab.Range.AutoFilter Field:=3
    Else
        oTab.Range.AutoFilter Field:=3, Criteria1:="=" & sCrit
    End If
End Sub

【代码解析】
第4行代码定义循环筛选关键字的顺序,其中KB--代表显示全部,即清除筛选条件。
第5行代码定义循环筛选列的标题。
第6行代码将关键字序列拆分为数组。
第7行代码获取工作表中的第一个ListObject对象。
第8行代码获取循环筛选列的Index属性,即该列在表格中的位置序号。
第9行代码判断表格是否启用筛选功能,如果未启用,则第10行代码启用筛选功能。
第12行代码判断表格是否存在筛选过滤。
第13行代码判断指定列是否存在筛选过滤。
如果存在第14行代码获取当前筛选条件的关键字。
第15行代码在关键字列表中查找下一个关键字。
如果表格是不存在筛选过滤,第17行代码设置首次筛选关键字。
第20行代码与第17行代码功能相同。
第22行代码识别指定关键字,第23行代码清除筛选条件关键字。
第25行代码应用新的筛选条件。

标签:KB,sCrit,表格,代码,Excel,AutoFilter,oTab,筛选
From: https://blog.csdn.net/taller_2000/article/details/142486871

相关文章

  • GEE APP:Best Available Pixel (BAP)APP Landsat系列最佳影像的筛选应用
    目录简介参数说明像素评分功能场景中最大云层覆盖率大气不透明度Landsat-7ETM+SLC-off惩罚高级参数应用去尖峰算法Applyde-spikingalgorithm填充数据间隙执行进展library代码UI代码 web界面提示引用BAPcompositesassessmentBAPpracticaldemonstrat......
  • 报表中按下上下左右按键input会像excel一样跳转聚焦
    上下左右按键input聚焦###html使用在需要聚焦的input后加下面内容@keydown.native="handleKeyDown($event,0,0)":ref="'0_0'"或者@keydown.native="handleKeyDown($event,index,0)":ref="`${index}_0`"###引入此方法h......
  • 好用的js表格组件tabulator使用
    偶然中看到了这个功能强大的表格组件,不仅支持分页、过滤、排序、树形表格等常见的功能,且支持分组显示、表格内编辑、统计计算、读本地文件、拖拽表格改变行列顺序、下载、像在excel文件中操作一样的编辑等多种功能。常用配置项及表格实例化查看代码<linkhref="../plugins/tab......
  • 这个大纲可以根据具体需求进行调整,帮助学习者深入掌握 Excel 的高级功能。这个大纲为
    Excel初级使用教程大纲一、Excel简介Excel的基本概念Excel的主要功能与应用领域二、界面与基础操作Excel界面介绍菜单栏、工具栏、工作表单元格、行、列的概念工作簿与工作表的管理创建、保存和打开工作簿工作表的添加、删除、重命名三、数据输入与编辑......
  • Excel的基本应用__1
    1.模拟运算1.1单变量求解1.1.1步骤1.1.1效果1.2模拟运算表1.2.1步骤1.2.2效果2.选择性粘贴--转至3.Excel中如何使用和定义名称使用相当于全局变量,可以在不同表中调用3.1名称中使用常量3.2名称中使用函数调用可以在不同的表中调用3.3动态名......
  • 第3章 表格布局与表单交互
    3.1表格概述在HTML中,表格是用来展示数据的一种有效方式,特别是当数据是结构化的,比如行和列的形式时。表格由 <table> 标签定义,并通过一系列的行 <tr>、单元格 <td>(tabledata)以及表头 <th>(tableheader)来构建。3.1.1表格的结构一个基本的 HTML表格由以下几个部分......
  • c# winform 以excel形式导出表格中的数据
    1.需要安装EPPlus插件2.引入usingOfficeOpenXml;usingOfficeOpenXml.Style; 3.代码publicvoidExportDataGridViewToExcel(DataGridViewdgv,stringfilePath)    {      //设置EPPlus的许可证上下文      ExcelPackage.Licens......
  • Axure原型设计:多层级动态表格
    多层级表格又成为树形表格,是在后台常用的一种表格形式,当表格数据存在多层级关系是,可以通过多层级表格,从而更加清晰的呈现数据内容,帮助人们更好地理解和分析数据之间的关系,从而更加有效地传递信息。所以今天作者就教大家怎么在Axure里制作多层级动态表格,包括展开、折叠、增加、修......
  • HTML中的列表、表格、媒体元素和内联框架
    HTML中的列表、表格、媒体元素和内联框架本章目标会使用有序列表、无序列表和定义列表实现数据展示(重点)会使用表格实现数据会使用媒体元素在网页中播放视频(重点)会使用html5结构元素进行网页布局(重点)一、列表1.无序列表ul:unorderedlist快捷键:ul>li*5>aul>li>img+p......
  • 【项目实战】JAVA 项目使用 EasyExcel 读取和导入数据到项目中
    1、easyExcel引入依赖进入官网GetStarted就可以了。(官方文档简单好用,跟着走就可以了。)https://alibaba-easyexcel.github.io/index.html<!--easyExcel--><dependency><groupId>com.alibaba</groupId><artifactId>easye......