vba autofilter 筛选
国外网站介绍VBA autofilter 很不错
https://trumpexcel.com/vba-autofilter/#Example-Multiple-Criteria-With-Different-Columns
说实话国外的网站对于VBA的资料相对于国内来说内容更丰富更具有实用性。当然是Bing搜索引擎与百度引擎相比较。
1 显示所有数据,不隐藏数据 (仅在Autofilter模式下使用)
If Worksheets("Function").FilterMode = True ThenWorksheets("Function").AutoFilter.ShowAllData
Worksheets("Function").Rows.Hidden = FalseEnd If
但是如果是需要VBA高级筛选的话就不能用AutoFiler.ShowAllData 方法,否则报错。因为这个方法只针对AutoFilter情况。可以换成Worksheets("XXX").ShowAllData
2 多条件筛选(仅限于两个筛选条件,如果多条件必须是高级筛选)
With w.Range("A1")
.AutoFilter Field:=2, Criteria1:= _Array("Teller", "AIO","Plan"), Operator:=xlFilterValues
.AutoFilter Field:=7, Criteria1:="<>t*", Operator:=xlFilterValues
End With
其实有很多博客都写了关于autofilter的函数方法,包括参数用途。但是这里我还是最终想讲一下通配符的作用,没错就是“*”,“?”,“~”。这个坑的我好苦啊(应该是寻找答案的时间比较长,2天时间)
先简要介绍一下这三种通配符。
通配符 | 意义 |
~ | 类似于转义字符“\” 如果匹配的字符串中含有特殊字符,在特殊字符前加“~” |
? | 代表一个字符 |
* | 代表一个或者多个字符 |
我的需求是第七列(也就是G列)筛选出不含有开头为字母t的内容。一开始以为Criteria筛选可以用正则表达式进行筛选,结果多次尝试后根本就不行,然后无意间找到通配符这个功能,研究了一下,好像也不可以。VBA script regular express 引用也不可以。可能是想得太多了,下班在车上突然想到用<>也就是不等于试一试,没想到成功了。VBA的正则还是有一些不同的。我要好好记住它。
Criteria1:= "<>t*"
3 高级筛选
国外有一个网站写的很好,不得不说国外的资料比较全。这是因为什么呢?我认为是他们很认真,国内就恐怕做不到。谢谢这位作者。
https://www.thespreadsheetguru.com/blog/2015/2/16/advanced-filters-with-vba-to-automate-filtering-on-and-out-specific-values
上面网站讲述了一个很好的例子。具体情况具体分析。
高级条件筛选
首先要创建一个筛选标准的Excel。如果是逻辑与的话,需要在同一行。反之逻辑或则是非同一行。如下
Assigned To | Assigned To | Assigned To | Sub Category |
<>t* | <>y* | <>io* | 01. Test1 |
<>t* | <>y* | <>io* | 01. Test2 |
说明一下"<>"这个符号在Like 函数中无法使用,但是可以再高级筛选中使用。
https://docs.microsoft.com/zh-cn/office/vba/language/reference/user-interface-help/like-operator
内置模式匹配为字符串比较提供了一个功能多样的工具。 利用模式匹配功能,您可以将通配符、字符列表或字符范围任意组合使用来匹配字符串。 下表显示了 pattern 中允许使用的字符以及它们的匹配项:
_模式_中的字符 | _字符串_中的匹配项 |
---|---|
? | 任意单个字符。 |
* | 零个或多个字符。 |
# | 任何单个数字 (0-9)。 |
[ charlist ] | charlist 内的任意单个字符。 |
[ !charlist ] | charlist 外的任意单个字符。 |
Code
w.Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _Sheets("Critical").Range("A1").CurrentRegion, Unique:=True
vba autofilter 筛选相关推荐
- Excel VBA 多重筛选
Excel VBA 多重筛选 Sub FilterOnValues() 'PURPOSE: Filter on specific valuesDim rng As RangeSet rng = Act ...
- 生成一个vba,筛选G列,取消全选和空白,点击筛选
下面是一个生成 VBA 代码的例子: Sub Filter() Dim ws As Worksheet Set ws = ActiveSheet With ws.Range("G:G&quo ...
- 在Excel中使用VBA来筛选数据
1. 问题由来 早晨还没有完全醒来,你就被电话吵醒,有一个中学同学向你请教一个Excel的问题.作为一个所谓的Excel专家,你经常会受到此类骚扰.问题大概是这样的,一个很大的Excel文 ...
- Excel VBA 如何筛选后,求和
文章目录 筛选 删选后求和 筛选 Private Sub TextBox2_Change() If TextBox2.Text = "" ThenAutoFilterMode = ...
- Excel通过VBA实现筛选多选功能
今天下午一直比较纠结,想形成Excel筛选多选功能,发现通过 数据–数据验证–数据验证功能,只能实现 序列单选功能,如图: 而我想实现多选功能,肿么办?网上搜索,大部分是ExcelHome技术网站上大 ...
- 利用Excel VBA SQL做特殊文件浏览器
1.利用JamShellBrowser for ActiveX '转载请注明:本文来自:Excel吧 (www.excelba.com) 详细出处参考:http://www.excelba.com/A ...
- Excel指定条件筛选
Excel VBA高级筛选,通过动态修改查询条件进行筛选(CriteriaRange 条件),将筛选结果写入指定单元格(A7). Sub 宏1() ' ' 宏1 宏 ''Range("A7: ...
- C# WinForm开发系列 - Excel
01. 仅使用Dataset导入数据到Excel [翻译] Senthil S著Export data to Excel using Dataset only [简介] 当前,网上已经有了不少的导入数 ...
- mysql中的类型与java_mysql与java数据类型对应关系
[内核同步]浅析Linux内核同步机制 转自:http://blog.csdn.net/fzubbsc/article/details/37736683?utm_source=tuicool& ...
最新文章
- Ubuntu下通过CMake文件编译CUDA+OpenCV代码操作步骤
- k8s v1.9.6 超详细搭建步骤
- loadrunner 11 下载地址
- c#只读字段和常量的区别,以及静态构造函数的使用 .
- Redis 6 将采用全新协议 RESP3,以提供客户端缓存功能
- 同一个IP段ping不通同事的电脑
- 第16 17章节-Python3.5-Django知识点整理 15
- Centos7下安装DB2
- 隐马尔可夫模型HMM与维特比Veterbi算法(一)
- 极其艰难地下了决心建立博客虽然没有很好的理由或者仅仅是因为觉得自己的确要改变了......
- CImage对象使用罗伯特算子进行边缘检测
- C语言 汇总笔记(小甲鱼:带你学C带你飞)
- h5分享到微信唤起app功能
- 加拿大卡尔加里市推出本地数字货币
- 机器学习之决策树CART算法
- 2021年婴幼儿奶粉行业研究报告|洞见研报
- arm嵌入式led灯闪烁实验报告_嵌入式ARM键盘控制LED灯实验报告
- 【FPGA入门教程】(七)FSM(Finite State Machine,有限状态机)设计
- java做安卓文本编辑器,android文本编辑器
- MNF最小噪声分离变换