Excel VBA AutoFilter二次筛选:先筛H列,再筛N列(不含字母/数字)
VBA 实现多列自动筛选需求
针对你要先筛选H列(Field:=8),再筛选N列(Field:=14)且排除含任何字母/数字内容的需求,修正并补充代码如下:
' 假设rng已定义为包含表头的A:N列数据区域 rng.AutoFilter Field:=8, Criteria1:="Value" ' 筛选H列等于指定值的行 ' 筛选N列:仅保留不含任何字母或数字的内容 rng.AutoFilter Field:=14, Criteria1:="=NOT(ISNUMBER(SEARCH(""[A-Za-z0-9]"",N1)))"
代码说明:
- 第一行修正了你原代码的语法错误:
Criteria1:"Value"需改为Criteria1:="Value"(冒号后加等号)。 - 第二行使用Excel公式作为筛选条件:
SEARCH("[A-Za-z0-9]",N1)检测N列单元格是否包含字母或数字,存在匹配则返回位置数值,无匹配则返回错误。ISNUMBER()判断检测结果是否为数值(即存在字母/数字)。NOT()取反,最终筛选出不存在任何字母或数字的行。
注意:确保rng变量指向的区域包含表头行,否则AutoFilter会无法正确识别列标识。
内容的提问来源于stack exchange,提问作者k1dr0ck
相关产品推荐
相关产品推荐

