天天看點

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)

這樣就可以實作篩選自動選擇内容