VBA中AutoFilter的使用方法
AutoFilter(Field,Criterial1,Operator,Criteria2,VisibleDropDown)
(1)参数field:参数Field,指定想要基于筛选的字段的整数偏移量。从列表的左侧算起,最左侧的字段是字段一
(2)参数Criterial1:指定判断条件(为字符串)
(3)参数Operator,指定筛选的类型
- xlAnd:值为1。Criteria1和Criteria2的逻辑与。
- xlOr:值2。Criteria1或Criteria2的逻辑或。
- xlTop10Items:值3。显示最大值的项(在Criteria1中指定项目数)。
- xlBottom10Items:值4。显示最小值的项(在Criteria1中指定项目数)。
- xlTop10Percent:值5。显示最大值的项(在Criteria1中指定百分比)。
- xlBottom10Percent:值6。显示最小值的项(在Criteria1中指定百分比)。
- xlFilterValues:值7。筛选值。
- xlFilterCellColor:值8。单元格的颜色。
- xlFilterFontColor:值9。字体颜色。
- xlFilterIcon:值10。筛选图标。
- xlFilterDynamic:值11。动态筛选。
(4)参数Criteria2:指定第二个判断条件(字符串),使用Criterial1和Operator构建复合判断条件。
(5)参数VisibleDropDown:设置为True则显示所筛选字段的自动筛选下拉箭头;设置为False则隐藏所筛选字段的自动筛选下拉箭头。默认为True。
举例
- 需求:
1 删除CDE列
2 将金额放在日期列的后面
3 筛选数量大于200的数据
Sub 录制宏()
'
' 录制宏 宏
'
' 快捷键: Ctrl+q
'
Columns("C:E").Select
'C列和E列被选择
Selection.Delete Shift:=xlToLeft
'选择的列被删除,参数向左移动
Columns("G:G").Select
'G列被选择
Selection.Cut
'选择的列被剪切
Columns("B:B").Select
'B列被选择
Selection.Insert Shift:=xlToRight
'选择的列被插入,参数右移
Range("A1:H1").Select
'A1到H1范围被选择
Selection.AutoFilter
'被选择的列筛选
ActiveSheet.Range("$A$1:$H$114").AutoFilter Field:=7, Criteria1:=">200", Operator:=xlAnd
'活动的表格范围(固定的A1到H114),自动筛选第七列,条件1为大于200.
End Sub