excel vba筛选

excel 中有两个筛选

1、筛选,vba 代码为

set rg=range("a1:a100")

rg.AutoFilter Field:=1, Criteria1:="内容"

rg 为筛选区域, Criteria1为筛选的值,比如在A1列内筛选内容为北京区的 ,则 Criteria1="北京区"

2、高级筛选

 Rg.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("A1"), Unique:=True

同理rg 为rang 区,action 有两个值,一个是不改变,一个是复制,copytoRange  就是结果复制内容到

这里主要说复制结果,这个结果是不重复的,比如有1000行数据,里面有10个北京区,20个上海区,四川区等,他会吧内容不重复的列出了

这两个结合起来使用 就可以达到自定义筛选了

  Rg.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("A1"), Unique:=True
    x = Range("A60000").End(xlUp).Row
ReDim filterArray(0 To x - 1)
    For i = 0 To x - 2
    filterArray(i) = Range("A" & i + 2)
   Rg.AutoFilter Field:=1, Criteria1:=filterArray(i)

这样就可以实现筛选自动选择内容

猜你喜欢

转载自blog.csdn.net/liliaq/article/details/54962820