您的位置:首頁>正文

VBA|創建和撤銷自動篩選

自動篩選可以通過操作Excel的“資料”選項卡→“篩選”來獲取需要的資料。 如果需要篩選的列數較多, 或設置的條件比較複雜, 或同樣的篩選需要經常操作, 也可以編寫VBA來完成資料篩選。

有如下資料:

學號姓名數學語文化學物理總分0001紀羽西818792913510002何晨819092863490003王無忌858497873530004劉玉潔988288823500005李武西809687893520006董明珠989496913790007郭冉898680883430008蔡曉宇879584963620009李輝899385923590010李秀梅82908592349

篩選李姓且語文成績在90分以上的學生。

如果是用Excel選項卡命令的方式進行:

篩選後效果如下:

也可以用VBA達到同樣的效果:

Sub 創建自動篩選()

Dim myRange As Range

Set myRange = Range("A1").CurrentRegion

With myRange

.AutoFilter field:=2, Criteria1:="=李*"

.AutoFilter field:=4, Criteria1:=">=90"

End With

Set myRange = Nothing

End Sub

代碼簡單說明:

AutoFilter是物件Range的屬性;

field是表示需要篩選的區域的欄位, 後面跟的數字表示是第幾個欄位;

criterial就是表示篩選條件了, 篩選條件需要放在雙引號內。

如果要去掉篩選:

Sub 撤銷自動篩選()

Dim ws As Worksheet

Dim myAutofilter As AutoFilter

Set ws = ActiveSheet

Set myAutofilter = ws.AutoFilter

If Not myAutofilter Is Nothing Then

myAutofilter.Range.AutoFilter

Else

MsgBox "沒有自動篩選"

End If

Set myAutofilter = Nothing

Set ws = Nothing

End Sub

-End-

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示