vba筛选函数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简单筛选

使用Range对象的AutoFilter方法,可对Range区域的数据中使用“自动筛选”筛选一

个列表。该方法的语法如下:

表达式.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)

各参数的含义如下:

—Field:相对于作为筛选基准字段(从列表左侧开始,最左侧的字段为第一个字段)的字段的整型偏移量。

—Criteria1:筛选条件,为一个字符串。使用“=”可查找空字段,或者使用“<>”查找非空字段。如果省略该参数,则搜索条件为All。如果将Operator设置为xlTop10Items,则Criteria1指定数据项个数(例如,“10”)。

—Operator:指定筛选类型,可用常量如表12-2所示。

表12-2 筛选类型

—Criteria2:第二个筛选条件(一个字符串)。与Criteria1和Operator一起组合成复合筛选条件。

—VisibleDropDown:如果为True,则显示筛选字段的自动筛选下拉箭头。如果为False,则隐藏筛选字段的自动筛选下拉箭头。默认值为True。

高级筛选

Excel的高级筛选可用VBA代码来实现,使用Range对象的AdvancedFilter方法即可进行高级筛选。

高级筛选必须在工作表中定义一个条件区域,通过该条件从列表中筛选或复制数据。如果初始选定区域为单个单元格,则使用单元格的当前区域。AdvancedFilter方法的语法格式如下:

表达式.AdvancedFilter(Action, CriteriaRange, CopyToRange, Unique)

该方法各参数的含义如下:

—Action:指定是否就地复制或筛选列表,可使用常量xlFilterCopy(将筛选出的数据复制到新位置)或xlFilterInPlace(保留数据不动)。

—CriteriaRange:条件区域。如果省略该参数,则没有条件限制。

—CopyToRange:如果Action为xlFilterCopy,则该参数为复制行的目标区域。否则,忽略该参数。

—Unique:如果为True,则只筛选唯一记录。如果为False,则筛选符合条件的所有记录。默认值为False。

Sub 高级筛选()

Dim rng As Range, rng1 As Range

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual '手动重算

Set rng = Worksheets("Sheet1").Range("A19").CurrentRegion

Set rng = rng.Offset(1, 0).Resize(rng.Rows.Count - 1, rng.Columns.Count)

Set rng1 = Worksheets("Sheet1").Range("A1").CurrentRegion

Set rng1=rng1.Offset(1,0).Resize(rng1.Rows.Count-1, rng1.Columns.Count)

rng1.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=rng

Application.Calculation = xlCalculationAutomatic '自动重算

Application.ScreenUpdating = True

End Sub

以上代码首先获取工作表中条件区域和筛选数据区域的引用,最后使用AdvancedFilter 方法对数据区域进行筛选

取消筛选

Sub 取消筛选()

Dim ws1 As Worksheet

For Each ws1 In Worksheets

ws1.AutoFilterMode = False

Next

End Sub

对日期段做筛选

Private Sub vv()

Dim i As Date, j As Date

i = InputBox("請輸入『開始』查詢時間輸入格式如2006/1/1")

j = InputBox("請輸入『結束』查詢時間輸入格式如2006/1/1") Selection.AutoFilter Field:=5, Criteria1:="<" & j, Operator:=xlAnd, _ Criteria2:=">" & i

End Sub

相关文档
最新文档