模糊筛选
用通配符,条件写成 “*aaa*” 这种,前面用等号不是用 like
下面写一下通配符吧,免得忘了
* :表示任意多个字符(可以为0个)
? :表示任意一个字符(必须为1个)
# :表示任意一个数字(必须为1个)
! :逻辑非,表示不是,如[!0-9]表示非数字
[] :表示一个范围,如[A-Z a-z]表示全部字母
单列筛选单值
sheet.Range(sheet.Cells(1, 1), sheet.Cells(rows, cols)).AutoFilter Field:=列号, Criteria1:=条件
单列筛选两值
ActiveSheet.Range("$A$1:$DS$20").AutoFilter Field:=123, Criteria1:="=A", Operator:=xlOr, Criteria2:="=B"
单列筛选多值
ActiveSheet.Range("$A$1:$DS$20").AutoFilter Field:=123, Criteria1:=Array("A", "B", "D"), Operator:=xlFilterValues
多列筛选
把上面三个连起来用,中间别关闭筛选就行。
获取筛选后数据的行数
sheet.Range(sheet.Cells(1, 1), sheet.Cells(rows, cols)).SpecialCells(xlCellTypeVisible).Cells.Count - 1
筛选并复制粘贴数据
With Selection
.AutoFilter Field:=7, Criteria1:=dic(CStr(msh.OLEObjects("ListBox1").Object.List(i)))
.SpecialCells(xlCellTypeVisible).Copy msh3.Range("A" & fSheetLastRow(msh3) + 1)
End With
关闭筛选
sheet.AutoFilterMode = False
或
Sheets(SH_EXTRACT_MOM).Range("$A$10:$" & EXTRACT_MOM_COLL_LAST & "$" & extract_rows).AutoFilter
网友评论