VBA Kullanarak Verilerden Filtre Nasıl Uygulanır ve Silinir?

İçindekiler

Excel VBA Filtresi

VBA Filtresi aracı, istenen belirli verileri sıralamak veya almak için kullanılır, Otomatik filtre işlevi bir çalışma sayfası işlevi olarak kullanılır, ancak bu işlevin isteğe bağlı başka bağımsız değişkenleri vardır ve tek zorunlu bağımsız değişken, örneğin aralığı kapsayan ifadedir çalışma sayfaları ("Sayfa1"). Aralık ("A1") Otomatik filtre, filtreyi ilk sütuna uygulayacaktır.

VBA'daki filtre, çalışma sayfasındakiyle aynı şekilde çalışır. Farklı olan tek şey, verileri kodlama yoluyla filtreleme rutin görevini otomatikleştirebilmemizdir.

Otomatik Filtre, birçok sözdizimi değeri içeren bir işlevdir. Otomatik Filtre işleviyle ilgili parametreler aşağıdadır.

  • Aralık , "Otomatik Filtre" seçeneğini kullanmak için sağlamamız gereken ilk şeydir. Bu, basitçe, filtreyi uygulamamız gereken hücre aralığıdır, örneğin Aralık ("A1: D50").
  • Alan , fonksiyondaki ilk argümandır. VBA RANGE nesnesi aracılığıyla hücre aralığı seçildikten sonra, filtreyi hangi aralık sütunu için uygulamak istediğimizi belirtmemiz gerekir.
  • Ölçüt 1 , seçilen Alanda filtrelemek istediğiniz değerden başka bir şey değildir .
  • Operatör , Ölçüt 2 bağımsız değişkenini kullanmak istemeniz durumunda kullanılır . Bu seçenekte aşağıdaki seçenekleri kullanabiliriz.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • Görünür Açılır Menü , filtre uygulanan sütunda bir filtre sembolünün görüntülenip görüntülenmeyeceğidir. Görüntülemek istiyorsanız, bağımsız değişkeni DOĞRU veya YANLIŞ olarak sağlayabilirsiniz.

VBA Kullanarak Verileri Filtreleme Örnekleri

Örnek 1 - Verilere Filtre Uygulama veya Kaldırma

Verilere filtre seçeneğini uygulamak isterseniz, bu seçeneği kapatıp açabiliriz. Örneğin, aşağıdaki veri resmine bakın.

Adım 1: Veri aralığı sağlayın

Önce filtre seçeneğini etkinleştirmek için veri aralığımızı sağlamamız gerekir. Yukarıdaki resimde, verilerimiz A1'den G31'e yayılmıştır, bu nedenle bu aralığı bir RANGE nesnesi kullanarak sağlayın.

Kod:

Alt Filtre_Örnek () Aralık ("A1: G31") Son Alt
2. Adım: Ardından Otomatik Filtre işlevine erişin

Şimdi bu aralık için Otomatik Filtre işlevine erişin.

Kod:

Alt Filtre_Örnek () Aralık ("A1: G31"). Otomatik Filtre Son Alt
3. Adım: Filtreyi etkinleştirmek için kodu çalıştırın

Bu kadar. Otomatik filtreyi etkinleştirmek için bu kodu çalıştırın.

Bu kod bir geçiş işlevi görür ve filtre uygulanmazsa geçerli olur. Zaten uygulanmışsa, kaldırılacaktır.

Örnek 2 - Belirli Değerleri Filtreleme

Şimdi AutoFilter seçeneğinin parametrelerini nasıl kullanacağımızı göreceğiz. Yukarıdakiyle aynı verileri alın. Örneğin, şimdi tüm "Erkek" cinsiyet adlarını filtrelememiz gerekiyor.

Adım 1: Aralığı Seçin ve Otomatik Filtre İşlevini Açın
Adım 2: Ardından Alanı Seçin

Fonksiyon yani ilk argüman olarak, Tarla, biz filtrelemek istiyorum sütun başvurusu bahsetmek gerekir. Bu örnekte, yalnızca "C" sütunu olan "Erkek" adayları filtrelememiz gerekiyor, bu nedenle sütun numarası 3'tür.

3. Adım: Şimdi Belirtme Kriterleri

Şimdi bu sağlanan Alan için, Kriter 1'den bahsetmemiz gerekir, yani söz konusu Alanda hangi değeri filtrelememiz gerekir . Bu sütundan "Erkek" i filtrelememiz gerekiyor.

Kod:

Alt Filtre_Örnek () Aralık ("A1: G31"). Otomatik Filtre Alanı: = 3, Ölçüt1: = "Erkek" Son Alt
4. Adım: Ve kodu çalıştırın

Tamam, hepsi bu. Bu kod artık yalnızca "Erkek" adayları filtreleyecektir.

Örnek 3 - OPERATOR Bağımsız Değişkeninin Kullanımı

When you want to filter out more than one value from the column, we need to use the “Operator” argument. For example, from the column “Major,” we need to filter only “Math & Politics,” then we need to use this argument.

Step 1: Select Range and Autofilter Field

First, supply the Range of cells and fields.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, End Sub
Step 2: Enter Criteria 1 as Math

For the mentioned filed, we need to supply Criteria 1 as “Math.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", End Sub
Step 3: Use Operator xl

Since we need to filter one more value from the same column or field, use the operator symbol as “xlOr.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr End Sub
Step 4: Enter Criteria 2 as Politics

And for Criteria 2 argument mention the value as “Politics.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr, Criteria2:="Politics" End Sub

This will filter out both “Math” & “Politics” from column “Major.”

Example #4 - Filter Numbers with Operator Symbols

For example, if you want to filter numbers with, then we can filter a specific number as well as numbers above, below, or between specific values and range of values.

For example, from the age column, if you want to filter persons aged more than 30, then we can write the code like below.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">30" End Sub

This will filter all the values that are more than 30.

Now, if you want to filter values between 21 and 31, then we can use the below code.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">21", Operator:=xlAnd, Criteria2:="<31" End Sub

This will filter persons aged between 21 and 30.

Example #5 - Apply Filter for More Than One Column

If you want to filter values from more than one column criteria, then we need to use a slightly different technique.

If you want to filter “Student Status” as “Graduate” and “Country” as “US,” then first, we need to supply the RANGE of cells under the “WITH” statement.

Code:

Sub Filter_Example() With Range("A1:G31") End With End Sub

Şimdi WITH ifadesinin içinde, filtrelenecek ilk kriteri sağlayın.

Kod:

Alt Filter_Example () Aralıklı ("A1: G31") .AutoFilter Alanı: = 4, Ölçüt1: = "Mezun" End Sub With End

Şimdi bir sonraki satırda, "Alan" ı 6 ve Ölçütleri "ABD" olarak değiştirerek "Ülke" için aynısını yapın.

Kod:

Alt Filter_Example () Aralıklı ("A1: G31") .AutoFilter Alanı: = 4, Ölçüt1: = "Lisansüstü" .AutoFilter Alanı: = 6, Ölçüt1: = "ABD" End Sub With End

Şimdi bu, "Mezun" u yalnızca "ABD" ülkesi için filtreleyecektir.

Hatırlanacak şeyler

  • İlk olarak, yalnızca belirtilen hücre aralığı filtresi uygulanacaktır.
  • Alan, verileri filtrelemek istediğiniz sütunda hiçbir şey değildir.
  • Birden fazla sütundaki değerleri filtreleme durumunda With'i kullanın .

Ilginç makaleler...