打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
vba autofilter 筛选
国外网站介绍VBA autofilter 很不错
https://trumpexcel.com/vba-autofilter/#Example-Multiple-Criteria-With-Different-Columns
说实话国外的网站对于VBA的资料相对于国内来说内容更丰富更具有实用性。当然是Bing搜索引擎与百度引擎相比较。
1  显示所有数据,不隐藏数据 (仅在Autofilter模式下使用)
If Worksheets("Function").FilterMode = True Then
Worksheets("Function").AutoFilter.ShowAllData
Worksheets("Function").Rows.Hidden = False
End 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 ToAssigned ToAssigned ToSub 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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
EXCEL表格中如何多条件筛选?
【引用】VBA数据筛选语法
VBA自动筛选完全指南(下)
Excel之VBA常用功能应用篇:VBA筛选对象的实际应用,AutoFilter数据搜索
VBA程序的运算符
vba 用autofilter筛选不等于多个条件的值?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服