高级筛选VBA代码
Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range Set KeyCells = Range("Q4:S5") If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then '高级筛选 Worksheets("明细账").Activate Sheets("登记表").Range("getData[[#Headers],[#Data]]").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("Q3").CurrentRegion, CopyToRange:=Range("B4:N4"), Unique:=False '定位到最后一个非空单元格 'ActiveCell.SpecialCells(xlLastCell).Select '自动筛选 'Selection.AutoFilter End If End Sub
高级筛选的条件(Criteria)
条件 | 说明 | 示例 |
条件在同一行 | 条件之间为“与(并且)”的逻辑关系 | 如图01 |
条件在不同行 | 条件之间为“或(或者)”的逻辑关系 | |
*字符* | 筛选包含字符的值,允许使用通配符,但文本不加引号 | ?付* |
<>*字符* | 筛选不包含字符的值,允许使用通配符,但文本不加引号 | <>*银付* |
<> | 筛选非空值 | <> |
= | 筛选空值 | = |
参考文章:
https://zhuanlan.zhihu.com/p/26647039