您的位置:首頁>正文

Excel製作簡單的篩選器(VBA:ListBox控制項)

簡單的篩選器

Listbox控制項製作多選篩選器

應朋友的要求做了一個比較複雜的篩選器, 在這裡簡化了一下, 著了個實例。

這個小程式用VBA控制自動篩選,

使用表單控制項Listbox實現多選, 並把篩選結果複製到新表。

先看表單:

表單設計

表單很簡單幾個按鈕加一個Listbox,最主要的就是Listbox設置

Listbox

①多項選擇設置:有三個選項, 0單選, 1多選, 2擴展多選支持SHIFT&CTRL鍵。

②選項的表頭:只有兩個選項, TRUE使用, FALSE不使用。

③列表風格:有兩個選項, 0不顯示選擇框, 1顯示選擇框, 如果①是單選就顯示圓點單選, 否則顯示方框多選。

④資料來源:在表三裡提前寫好的篩選專案。

接下來是程式設計:

表單代碼部分:

表單代碼

這部分我用了個函數來處理多選, Multilistbox(), 就這個簡單的例子來說倒是沒有必要, 直接寫在按鈕事件裡就行了, 因為我處理的那個複雜篩選過程裡, 這個多選函數可以縮減工作量。

這裡的HH, 還有ComType是全域變數用來把從表單取到資料傳遞到模組裡。

模組代碼:

模組代碼

這段代碼的重點在於:

With srng

.AutoFilter

If UBound(ComType) = 3 Then

.AutoFilter Field:=2

Else

.AutoFilter Field:=2, Criteria1:=ComType, Operator:=xlFilterValues

End If

End With

判斷傳遞過來的ComType陣列上限是不是3, 來決定是全選, 還是按照值篩選。

有了這個實例的經驗, 複雜的篩選過程也不難處理, 就是多了些參數傳遞。

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