Penapis Auto VBA

AutoFilter Excel VBA

AutoFilter dalam VBA digunakan sebagai ungkapan dan sintaks untuknya seperti berikut Ekspresi. Autofilter (Field, Criteria 1, Operator, Criteria 2, Dropdown) semua argumen adalah pilihan. Penapis membantu dalam menyaring data tertentu dari data besar.

Sekiranya anda pengguna biasa maka penapis excel bukanlah perkara yang asing bagi anda. Beberapa alat yang kami gunakan dalam lembaran kerja juga disatukan ke dalam VBA dan pilihan penapis automatik adalah salah satu alat penting yang terdapat di VBA. Seperti yang kita semua tahu penapis excel tersedia di bawah tab data.

Dengan menggunakan pilihan penapis ini kita dapat bermain-main dengan data. Sekiranya anda berhadapan dengan jumlah data yang minimum dan jika anda fikir pilihan autofilter VBA tidak benar-benar diperlukan, anda boleh terus menggunakan pilihan penapis lembaran kerja.

Sekiranya anda berurusan dengan sejumlah besar data maka anda boleh menggunakan pilihan Autofilter untuk mempermudah aliran proses.

Sintaks Fungsi AutoFilter

AutoFilter dalam Excel VBA dapat digunakan dengan objek jarak jauh. Seperti fungsi kami yang lain, ini juga mempunyai sintaksnya yang tersendiri.

  • Julat: Julat hanya dalam julat yang anda mahu gunakan penapis.
  • Bidang: Medan bermaksud dari lajur julat mana yang telah anda pilih yang anda mahu menyaring data. Lajur akan dikira dari kiri ke kanan.

Sebagai contoh, jika julat anda adalah dari A1 hingga D100 dan anda ingin menerapkan penapis untuk lajur D maka nombor medan anda adalah 4 kerana dalam julat yang dipilih D adalah lajur keempat.

Kriteria 1: Di lapangan, anda telah memilih perkara yang ingin anda saring.

  • Operator: Sekiranya anda ingin menggunakan lebih daripada satu kriteria untuk menyaring data, maka kita perlu menggunakan simbol operator. Sebilangan kod pengendali adalah seperti di bawah.

xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues.

Kriteria 2: Apakah perkara kedua yang ingin anda saring bersama dengan Kriteria 1?

  • Turunkan Terlihat: Adakah anda ingin memaparkan ikon penapis turun di lajur yang ditapis. Sekiranya anda ingin menampilkan BENAR adalah hujah, jika tidak SALAH adalah hujah.

Bagaimana Memohon Penapis menggunakan VBA AutoFilter? (dengan Contoh)

Anda boleh memuat turun Template AutoFilter VBA ini di sini - Templat AutoFilter VBA

Andaikan di bawah data yang anda gunakan.

Sekarang dengan menggunakan kod VBA, kami akan menggunakan penapis. Ikuti langkah di bawah untuk menggunakan penapis.

Langkah 1: Mulakan subproses dengan memberikan nama pada makro.

Kod:

 Sub AutoFilter_Contoh1 () Akhir Sub 

Langkah 2:  Perkara pertama adalah dalam julat apa yang kita perlukan untuk menggunakan penapis. Dalam kes ini, kita perlu menerapkan julat dari julat A1 hingga E25.

Kod:

 Sub AutoFilter_Contoh1 () Julat ("A1: E25") Sub Akhir 

Langkah 3: Setelah julat dipilih, sekarang gunakan pilihan autofilter.

Kod:

 Sub AutoFilter_Contoh1 () Julat ("A1: E25"). Sub Akhir AutoFilter 

Kami tidak memilih nilai menggunakan autofilter sebaliknya kami hanya menggunakan penapis pada masa ini.

Jalankan kod menggunakan kekunci F5 atau secara manual ia akan memasukkan penapis untuk julat yang dipilih.

Oleh itu, ia telah menggunakan penapis pada data. Sekarang kita akan melihat cara menyaring data.

Contoh # 1 - Tapis Data dengan Menggunakan AutoFilter

Pertimbangkan data yang sama dari contoh di atas. Sekarang kita perlu menyaring jabatan "Kewangan" dari ruangan jabatan.

Langkah 1: Setelah saringan diterapkan, argumen pertama adalah menyebut dari lajur mana kita menyaring data. Dalam kes ini, kita perlu menyaring data dari lajur Jabatan, jadi nombor lajur jika 5.

Kod:

 Sub AutoFilter_Contoh1 () Julat ("A1: E25"). Bidang AutoFilter: = 5, Sub Akhir 

Langkah 2: Kriteria 1 tidak lain adalah apa yang ingin kami saring dari lajur ke-5. Oleh itu, kita perlu menyaring "Kewangan".

Kod:

 Sub AutoFilter_Example1 () Julat ("A1: E25"). Bidang AutoFilter: = 5, Kriteria1: = "Kewangan" Sub Akhir 

Jadi itu sahaja, jalankan kod ini secara manual atau melalui kunci F5 ia hanya akan menyaring "Kewangan" dari senarai.

Contoh # 2 - Pengendali dalam AutoFilter

Kami telah melihat cara menapis nilai tunggal. Sekarang kita akan melihat cara menapis pelbagai elemen. Anggaplah bersama dengan "Kewangan" anda juga ingin menyaring bahagian "Penjualan", jadi kami dapat melakukan ini dengan menggunakan Operator.

Langkah 1: Setelah menerapkan kriteria pertama dalam argumen seterusnya, pilih operator sebagai "xlOr".

Kod:

 Sub AutoFilter_Example2 () Julat ("A1: E25"). Bidang AutoFilter: = 5, Kriteria1: = "Kewangan", Operator: = xl Atau Sub Akhir 

Langkah 2: Sekarang dalam Kriteria 2 sebutkan nilainya sebagai "Penjualan".

Kod:

 Sub AutoFilter_Example2 () Julat ("A1: E25"). Bidang AutoFilter: = 5, Kriteria1: = "Kewangan", Operator: = xlOr, Kriteria2: = "Penjualan" Sub Akhir 

Step 3: Ok, done run this code using F5 key or manually it will filter out both “Finance” & “Sales”.

In the Operator argument, I have used “xlOr” this will select both “Finance” & “Sales” under the filter.

Example #3 – Filter Numbers using AutoFilter

Using Operator symbol “XlAnd” we can filter out numbers as well. Assume from the Overtime column you want to filter out all the values which are >1000 but <3000.

Step 1: The first thing is changing the Field from 5 to 4.

Code:

 Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4 End Sub 

Step 2: Criteria 1 is >1000.

Code:

 Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4,Criteria1:=">1000", End Sub 

Step 3: Here we need to match both the criteria so use “xlAnd” as the operator.

Code:

 Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, End Sub 

Step 4: Criteria 2 will <3000.

Code:

 Sub AutoFilter_Example3() Range("A1:E25").AutoFilter Field:=4, Criteria1:=">1000", Operator:=xlAnd, Criteria2:="<3000" End Sub 

Now if you run this code manually or through the F5 key, it will filter out all the values from the Overtime column which are >1000 but <3000.

Example #4 – Filter from Different Columns using AutoFilter

In order to filter out data from different columns, we need to use a different process. Assume you want to filter out the “Finance” department and also you want to filter out Salary numbers which are >25000 but <40000.

You can use the below code does that.

Code:

 Sub AutoFilter_Example4()       With Range("A1:E25") .AutoFilter Field:=5, Criteria1:="Finance" .AutoFilter Field:=2, Criteria1:=">25000", Operator:=xlAnd, Criteria2:="<40000"       End With End Sub 

This will filter out two columns.

Run this code using the F5 key or you can run manually.

Things to Remember

  • Try different combinations under Operator to get the knowledge of VBA AutoFilter.
  • If you are not sure what to put in try using the macro recorder.
  • If you want to filter out text values then you need to supply them in double-quotes.
  • Use WITH statement to apply more than one column filter.