最近在网上找到了一些比较好的关于AdvancedFilter应用的例子,总结和分享如下:
expression.AdvancedFilter(Action, CriteriaRange, CopyToRange, Unique)
expression
必需。该表达式返回“应用于”列表中的对象之一。
Action XlFilterAction 类型,必需。
XlFilterAction 可为以下 XlFilterAction 常量之一。 |
xlFilterCopy |
xlFilterInPlace |
CriteriaRange Variant 类型,可选。条件区域。如果省略本参数,则没有条件限制。
CopyToRange Variant 类型,可选。如果 Action 为 xlFilterCopy,则本参数指定被复制行的目标区域。否则忽略本参数。
Unique Variant 类型,可选。如果为 True,则重复出现的记录仅保留一条;如果为 False,则筛选出所有符合条件的记录。默认值为 False。
例子:(看附件)
Sub Macro1()
Range("A1:D12").Select
Range("A1:D12").AdvancedFilter
Action:=xlFilterCopy, CriteriaRange:=Range( _
"F5:I6"), CopyToRange:=Range("K1"),
Unique:=False
End Sub
总结:
在条件设定中:
1.
同一行的各条件是“and”的关系
2.不同行间是“or”的关系
3.
条件列标题要和原来表格的一致
4.
在VBA条件范围时要注意,在选定多行范围时,空单元格也是一个条件,
如本例,如果只选定“F5:I6”,那只有“F6”and "G6"的共同条件, 但如果选“F5:I7”,而第7行为空,则在以上条件下,还要考虑 or
""的条件
(相当于全选)。
|