vba 筛选

发布时间 2023-09-15 15:45:30作者: 绮丽梦境

1.判断工作表是否处于自动筛选模式

 

取消自动筛选

Sheets("sheet1").AutoFilterMode = False '注意这里对象是sheet, 不需要sheet中的具体区域,比如[a1:c1]之类

取消高级筛选:
If Sheets("sheet1").FilterMode = True Then Sheets("sheet1").ShowAllData

 

检测工作表是否处于自动筛选模式,如是则去掉自动筛选,代码如下:

If sht1.AutoFilterMode = True Then .Range("A1").AutoFilter

ActiveSheet.ShowAllData

 

2.设置筛选

为工作表设置自动筛选的vba代码为 Selection.AutoFilter,但要注意筛选位置在当前单元格处。

所以要注意,加自动筛选前,现将单元格定位到字段标题处代码(有的工作表筛选需要在第二行或其他行)

 

 

3.指定筛选条件

录制出的宏不是不等于,而是等于,无法排除某一个

Excel原生的筛选“自定义筛选-不等于”功能是难以支持的

Operator:=xlFilterValues”指的是筛选后要保留哪些值,所以使用 不等于时不能使用该Operator

 

排除空的单元格,Criterial:="<>"