VBA'da oluşturabilirsiniz Otomatik filtre bir hücre aralığını veya bir Excel tablosunu filtrelemek için. Bu eğitimde, nasıl oluşturulacağını öğreneceksiniz. Otomatik filtre bir veya birden çok sütun için ve birden çok koşul için.
VBA'da gelişmiş bir filtrenin nasıl kullanılacağını öğrenmek istiyorsanız, buraya tıklayın: VBA gelişmiş filtre
VBA'da Otomatik Filtre Oluşturma
İlk önce, sadece nasıl oluşturulacağını göreceksiniz Otomatik filtre bir aralıkta, böylece bir kullanıcı verileri filtreleyebilir. Örneklerde kullanacağımız veriler Resim 1:
Resim 1. Otomatik Filtre örnekleri için veriler
İşte oluşturmak için kod Otomatik filtre:
1 | Sheet1.Range("A1:E1").Otomatik Filtre |
etkinleştirmek için Otomatik filtre, bizim durumumuzda A1:E1 aralığının başlığını belirtmemiz ve Otomatik filtre nesnenin yöntemi Menzil. Sonuç olarak, veri yelpazemizde etkinleştirilmiş filtreler var:
Resim 2. Veriler için Otomatik Filtre etkin
Alan ve Kriter Parametreleri ile Otomatik Filtre
VBA, belirli bir alanı belirli değerlerle otomatik olarak filtrelemenize de olanak tanır.
Bunu yapmak için parametreleri kullanmanız gerekir. Alan ve Kriter1 yöntemin Otomatik filtre. Bu örnekte, üçüncü sütunu filtrelemek istiyoruz (Ürün) için Ürün A bir tek. İşte kod:
12 | Sheet1.Range("A1:E1").Otomatik Filtre Alanı:=3, _Criteria1:="Ürün A" |
İçinde Alan parametre, aralıktaki (Excel'de değil) sütun sayısını ayarlayabilirsiniz. Kriter1 filtrelemek istediğiniz değeri koyabilirsiniz. Kodu çalıştırdıktan sonra tablomuz şöyle görünür:
Resim 3. Alan ve ölçütlerle Otomatik Filtre
Gördüğünüz gibi, yalnızca satırlar Ürün A üçüncü sütunda veri aralığında görüntülenir.
Alan ve Çoklu Ölçüt Değerleri ile Otomatik Filtre
Bir alanı birkaç değerle filtrelemek istiyorsanız, parametreyi kullanmanız gerekir. Şebeke arasında Otomatik filtre yöntem. Birden çok değeri filtrelemek için şunları ayarlamanız gerekir: Şebeke ile xlFilterValues ve ayrıca tüm değerleri koymak için Kriterler bir dizide. Bu örnekte, filtre Ürün için sütun Ürün A ve Ürün B. İşte kod örneği:
123 | Sheet1.Range("A1:E1").Otomatik Filtre Alanı:=3, _Criteria1:=Array("Ürün A", "Ürün B"), _Operatör:=xlFilterValues |
Kodu çalıştırdığımızda, Resim 4'te görebileceğiniz gibi, yalnızca Ürün A ve Ürün B ile satırlar alıyoruz:
Resim 4. Çoklu ölçüt değerlerine sahip Otomatik Filtre
Çoklu Kriterli Otomatik Filtre Veri Aralığı
Birden çok kritere sahip bir alanı filtrelemek istiyorsanız, kullanmanız gerekir. Kriter1 ve Kriter2 parametreleri değil, aynı zamanda Operatör xlAnd.
Sonraki örnekte, ilk sütunu filtreleyeceğiz (Tarih) Aralık 2022'deki tarihler için. Bu nedenle iki kriterimiz var: 12/01/18'den büyük ve 12/31/18'den küçük bir tarih. Bu kod:
1234 | Sheet1.Range("A1:E1").Otomatik Filtre Alanı:=1, _Kriter1:=">=12/01/2018", _Operatör:=xlAnd, _Criteria2:="<=31/12/2018" |
Kodu çalıştırdığımızda, veri aralığında yalnızca Aralık'taki tarihlerin görüntülendiğini görebilirsiniz:
Resim 5. Alan için birden çok kritere sahip Otomatik Filtre
AutoFilter yönteminin Operatör Parametre Değerleri
Bir sonraki tabloda. tüm olası değerlerini görebilirsiniz. Şebeke AutoFilter yönteminin parametresi ve açıklamaları:
Şebeke | Açıklama |
xlAnd | Birden çok ölçüt içerir - Ölçüt1 ve Ölçüt 2 |
xlVeya | Birden çok kriterden birini içerir - Kriter1 veya Kriter 2 |
xlTop10Öğeler | Belirli sayıda en yüksek sıradaki değeri filtreler (Kriter1'de belirtilen sayı) |
xlBottom10Items | Belirli sayıda en düşük dereceli değeri filtreler (Kriter1'de belirtilen sayı) |
xlTop10Yüzde | En yüksek dereceli değerlerin belirli bir yüzdesini filtreler (Kriter1'de belirtilen yüzdesi) |
xlBottom10Yüzde | En düşük dereceli değerlerin belirli bir yüzdesini filtreler (Kriter1'de belirtilen yüzdesi) |
xlFilterValues | Array ile birden çok ölçüt değeri içerir |
xlFiltreHücreRenk | Renkler için hücreleri filtreler |
xlFilterYazı TipiRenk | Yazı tipi renkleri için hücreleri filtreler |
xlFilterSimgesi | Filtreler simgeleri |
xlFilterDinamik | Dinamik değerleri filtrele |