Filter Otomatis VBA

Filter Otomatis VBA Excel

AutoFilter di VBA digunakan sebagai ekspresi dan sintaks untuk itu sebagai berikut Expression. Autofilter (Bidang, Kriteria 1, Operator, Kriteria 2, Turun-bawah) semua argumen bersifat opsional. Filter berguna dalam memfilter data tertentu dari data yang sangat besar.

Jika Anda adalah pengguna biasa maka filter excel bukanlah hal yang aneh bagi Anda. Beberapa alat yang kami gunakan di lembar kerja juga diintegrasikan ke dalam VBA dan opsi filter otomatis adalah salah satu alat penting yang tersedia di VBA. Seperti yang kita semua tahu, filter excel tersedia di bawah tab data.

Dengan menggunakan opsi filter ini kita dapat bermain-main dengan data. Jika Anda berurusan dengan jumlah data minimal dan jika menurut Anda opsi filter otomatis VBA tidak benar-benar diperlukan, Anda dapat terus menggunakan opsi filter lembar kerja.

Jika Anda berurusan dengan data dalam jumlah besar, Anda dapat menggunakan opsi Filter Otomatis untuk menyederhanakan alur proses.

Sintaks Fungsi Filter Otomatis

Filter Otomatis di Excel VBA dapat digunakan dengan objek rentang. Seperti fungsi kami yang lain, ini juga memiliki sintaksnya sendiri.

  • Rentang: Rentang hanya dalam rentang apa Anda ingin menerapkan filter.
  • Bidang: Bidang berarti dari kolom mana dari rentang yang telah Anda pilih Anda ingin memfilter data. Sebuah kolom akan dihitung dari kiri ke kanan.

Misalnya, jika rentang Anda dari A1 hingga D100 dan Anda ingin menerapkan filter untuk kolom D maka nomor bidang Anda adalah 4 karena dalam rentang D yang dipilih adalah kolom keempat.

Kriteria 1: Di lapangan, Anda telah memilih apa yang ingin Anda filter.

  • Operator: Jika Anda ingin menerapkan lebih dari satu kriteria untuk memfilter data maka kita perlu menggunakan simbol operator. Beberapa kode operator adalah sebagai berikut.

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

Kriteria 2: Apa hal kedua yang ingin Anda filter bersama dengan Kriteria 1?

  • Drop Down Terlihat: Apakah Anda ingin menampilkan ikon filter fop down di kolom yang difilter. Jika Anda ingin menampilkan TRUE adalah argumennya, jika tidak FALSE adalah argumennya.

Bagaimana Cara Menerapkan Filter menggunakan VBA AutoFilter? (dengan Contoh)

Anda dapat mengunduh Template VBA AutoFilter ini di sini - Template VBA AutoFilter

Asumsikan di bawah ini data yang sedang Anda kerjakan.

Sekarang dengan menggunakan kode VBA, kami akan menerapkan filter. Ikuti langkah-langkah di bawah ini untuk menerapkan filter.

Langkah 1: Mulai subprocedure dengan memberi nama pada makro.

Kode:

 Sub AutoFilter_Example1 () End Sub 

Langkah 2: Hal pertama  adalah dalam kisaran apa kita perlu menerapkan filter. Dalam hal ini, kita perlu menerapkan rentang dari rentang A1 hingga E25.

Kode:

 Sub AutoFilter_Example1 () Range ("A1: E25") End Sub 

Langkah 3: Setelah rentang dipilih, sekarang terapkan opsi autofilter.

Kode:

 Sub AutoFilter_Example1 () Range ("A1: E25"). AutoFilter End Sub 

Kami tidak memilih nilai apa pun menggunakan autofilter melainkan kami hanya menerapkan filter pada saat ini.

Jalankan kode menggunakan tombol F5 atau secara manual itu akan memasukkan filter untuk rentang yang dipilih.

Jadi itu telah menerapkan filter ke data. Sekarang kita akan melihat cara memfilter data.

Contoh # 1 - Memfilter Data dengan Menggunakan Filter Otomatis

Perhatikan data yang sama dari contoh di atas. Sekarang kita perlu menyaring departemen "Keuangan" dari kolom departemen.

Langkah 1: Setelah filter diterapkan, argumen pertama adalah menyebutkan dari kolom mana kita memfilter data. Dalam hal ini, kita perlu memfilter data dari kolom Departemen, jadi kolom nomor jika 5.

Kode:

 Sub AutoFilter_Example1 () Range ("A1: E25"). Bidang AutoFilter: = 5, End Sub 

Langkah 2: Kriteria 1 tidak lain adalah apa yang ingin kita filter dari kolom ke-5. Jadi kita perlu menyaring "Keuangan".

Kode:

 Sub AutoFilter_Example1 () Range ("A1: E25"). Bidang AutoFilter: = 5, Criteria1: = "Finance" End Sub 

Jadi itu saja, jalankan kode ini secara manual atau melalui tombol F5 yang hanya akan menyaring "Keuangan" dari daftar.

Contoh # 2 - Operator di AutoFilter

Kami telah melihat cara memfilter nilai tunggal. Sekarang kita akan melihat cara memfilter banyak elemen. Asumsikan bersama dengan "Keuangan" Anda ingin memfilter departemen "Penjualan" juga, jadi kita dapat melakukannya dengan menggunakan Operator.

Langkah 1: Setelah menerapkan kriteria pertama di argumen berikutnya pilih operator sebagai "xlOr".

Kode:

 Sub AutoFilter_Example2 () Range ("A1: E25"). Bidang AutoFilter: = 5, Criteria1: = "Finance", Operator: = xlOr End Sub 

Langkah 2: Sekarang di Kriteria 2, sebutkan nilai sebagai "Penjualan".

Kode:

 Sub AutoFilter_Example2 () Range ("A1: E25"). Bidang AutoFilter: = 5, Criteria1: = "Finance", Operator: = xlOr, Criteria2: = "Sales" End Sub 

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.