自動篩選可以通過操作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-