Excel'de Verileri Filtrelemek için VBA Kodu (8 Örnek)

  • Bunu Paylaş
Hugh West

Excel Sırala & Filtre komutu sınırlı bir menzile sahiptir Filtre verileri . Ama kullanmak VBA Yapabilirsin. Filtre verileri Bu makale size kullanabileceğiniz 8 faydalı örnek sunacaktır. VBA koduna Filtre verileri kullanarak excel'de VBA Canlı çizimlerle kodlar.

Alıştırma Çalışma Kitabını İndirin

Ücretsiz Excel şablonunu buradan indirebilir ve kendi başınıza pratik yapabilirsiniz.

Verileri Filtrelemek için VBA Kodu.xlsm

8 Excel'de Verileri Filtrelemek için VBA Kodu Kullanma Örnekleri

Öncelikle bazı veri kümelerini temsil eden veri kümemizle tanışalım Öğrencilerin Cinsiyeti, Statüsü ve Yaşı .

1. Excel'de Bir Metin Ölçütüne Dayalı Olarak Verileri Filtrelemek için VBA Kodunu Kullanın

İlk örneğimizde şunları kullanacağız VBA için Filtre sadece Erkek öğrencilerinden Cinsiyet veri kümesinin sütunu.

Adımlar:

  • Sağ tıklayın üzerinde sayfa başlığı .
  • O zaman Kodu Görüntüle'yi seçin bir şey yok. Bağlam menüsü .

Kısa süre sonra, bir VBA penceresi açılacaktır.

  • Tip aşağıdaki kodlar içinde-
 Sub Filter_Data_Text() Worksheets("Text Criteria").Range("B4").AutoFilter Field:=2, Criteria1:="Male" End Sub 
  • Daha sonra, en aza indirin VBA

Kod Dökümü

  • Burada, bir Alt Prosedür, Filter_Data_Text() .
  • Sonra da Menzil özelliğimizi bildirmek için sayfa adı ve aralık
  • Sonra, ben kullandım AutoFilter yöntemi kullanmak için Kriterler benim seçtiğim Alan:=2 anlamına gelir sütun 2 . Ve Kriter1:="Erkek" için Filtre için veriler Erkek.
  • Bundan sonra açık ve Makrolar iletişim kutusu , tıklayın aşağıdaki gibi: Geliştirici> Makrolar.

  • Seçiniz ve Makro adı belirtildiği gibi kodlar .
  • Son olarak, sadece Çalıştır'a basın .

Şimdi bir bakın, elimizde sadece Erkek öğrencilerin verileri sonra Filtreleme .

Daha fazlasını okuyun: Excel Verileri Hücre Değerine Göre Filtreleme (6 Etkili Yol)

2. Tek Sütunda Birden Fazla Kriterle Verileri Filtrelemek için VBA Kodunu Uygulayın

Burada, biz Filtre Veri kümesinin üç numaralı sütunundan, bir sütunda birden fazla kriter için Filtre için Yüksek Lisans ve Yüksek Lisans Öğrenciler.

Adımlar:

  • İlk iki adımı takip edin .. ilk örnek açmak için VBA penceresi .
  • Sonra görüşürüz, tip aşağıdaki kodlar içinde-
 Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub 
  • Daha sonra minimize VBA

Kod Dökümü

  • Burada, bir Alt Prosedür, Filter_One_Column() .
  • Sonra da Menzil özelliğimizi bildirmek için sayfa adı ve aralık
  • Sonra, ben kullandım AutoFilter yöntemi kullanmak için Kriterler benim seçtiğim Alan:=3 anlamına gelir Sütun 3 İşte, Kriter1:="Mezun" ve Kriter2:="Lisansüstü" için Filtre öğrencinin Durum .
  • Son olarak, ben Operatör:=xlOr başvurmak için VEYA durum Filtre birden fazla kriter için.
  • Şu anda, takip et ve üçüncü adım bir şey yok. ilk örnek açmak için Makrolar iletişim kutusu kutu .
  • Sonra görüşürüz, seçin belirtilen Makro adı ve Çalıştır'a basın .

Kısa bir süre sonra, aşağıdaki resimdeki gibi birden fazla kritere göre Filtrelenmiş satırları alacaksınız.

Daha fazlasını okuyun: Excel'de Birden Çok Ölçütü Filtreleme (4 Uygun Yol)

3. Excel'de Farklı Sütunlarda Birden Fazla Kriterle Veri Filtrelemek için VBA Kodu Uygulayın

Şimdi Filtre birden fazla kriter için- Erkek ve Yüksek Lisans Öğrenciler.

Adımlar:

  • İlk iki adımı takip edin .. ilk örnek açmak için VBA
  • Sonra görüşürüz, yaz aşağıdaki kodlar içinde-
 Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub 
  • Ondan sonra VBA penceresini simge durumuna küçültme .

Kod Dökümü

  • Burada, bir Alt Prosedür, Filter_Different_Columns() .
  • Sonra, ben de ile kullanmak için ifade Çoklu Sütun .
  • Sonra da Menzil özelliğini bildirmek için sayfa adı ve aralık
  • Sonra, ben kullandım AutoFilter yöntemi kullanmak için Kriterler benim seçtiğim Alan:=2 anlamına gelir sütun 2 ve Alan:=3 anlamına gelir Sütun 3 .
  • Burada, seçilmiş Kriter1:="Erkek" için Cinsiyet sütunu ve Kriter1:="Mezun" için Durum sütununa Filtre gelen veriler farklı sütunlar .
  • O zaman üçüncü adımı takip edin bir şey yok. ilk örnek açmak için Makrolar iletişim kutusu .
  • Sonra görüşürüz, seçin belirtilen Makro adı ve Çalıştır'a basın .

İşte çoklu kriterlerin çıktısı.

Daha fazlasını okuyun: Excel VBA ile Aynı Sütunda Birden Fazla Kritere Göre Filtreleme (6 Örnek)

4. Excel'de İlk 3 Öğeyi Filtrelemek için VBA Kodunu Kullanın

Bu örnekte, filtreleyeceğiz ilk üç öğrenci göre yaş .

Adımlar:

  • İlk iki adımı takip edin .. ilk örnek açmak için VBA penceresi .
  • O zaman tip aşağıdaki kodlar içinde-
 Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub 
  • Bundan sonra en aza indirin VBA penceresi .

Kod Dökümü

  • Burada, bir Alt Prosedür, Filter_Top3_Items() .
  • Ve sonra kullanılan Operatör:=xlTop10Items için Filtre için ilk üç Veri .
  • Şimdi üçüncü adımı takip edin bir şey yok. ilk örnek açmak için Makrolar iletişim kutusu kutu .
  • O zaman Makro adını seçin kodlarda belirtildiği gibi ve Çalıştır'a basın .

Ardından aşağıdaki resimdeki gibi bir çıktı alacaksınız-

Daha fazlasını okuyun: Excel VBA Kullanarak Hücre Değerine Göre Filtreleme (4 Yöntem)

Benzer Okumalar

  • Excel'de Filtre Uygulandığında Kopyalama ve Yapıştırma
  • Excel'de Benzersiz Değerler Nasıl Filtrelenir (8 Kolay Yol)
  • Excel'de VBA ile Birden Çok Ölçütü Filtreleme (Hem AND Hem OR Türleri)
  • Excel'de Metin Filtresi Nasıl Kullanılır (5 Örnek)
  • Excel'de Tarihe Göre Filtreleme (4 Hızlı Yöntem)

5. Excel'de İlk 50 Yüzdeyi Filtrelemek için VBA Kodunu Kullanın

Hadi kullanalım VBA kodlarını filtrelemek için ilk yüzde elli öğrenci sayısı yaşlarına göre .

Adımlar:

  • Birincisi, İlk iki adımı takip edin .. ilk örnek açmak için VBA penceresi .
  • Sonra görüşürüz, tip aşağıdaki kodlar içinde-
 Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="50", Operator:=xlTop10Percent End Sub 
  • En aza indirin VBA penceresi .

Kod Dökümü

  • Burada, bir Alt Prosedür, Filter_Top50_Percent() .
  • Daha sonra, kullanılan Operatör:=xlTop10Percent için Filtreleyin ilk yüzde ellisi sütun-4 .
  • Şu anda, üçüncü adımı takip edin bir şey yok. ilk örnek açmak için Makrolar iletişim kutusu.
  • O zaman seçin belirtilen Makro adı ve Çalıştır'a basın .

Toplamda 7 öğrenci bu yüzden Yüzde 50 yaklaşık olarak şunları gösteriyor üç öğrenci .

Daha fazlasını okuyun: Excel'de Kar Yüzdesi Formülü Nasıl Kullanılır (3 Örnek)

6. Wildcard Kullanarak Verileri Filtrelemek için VBA Kodunu Uygulayın

Kullanabiliriz Joker karakterler-* (yıldız işareti) içinde VBA kodları Excel'de verileri filtrelemek için. Durum sütunu 'yi filtreleyeceğiz, sadece 'Post' içeren değerler .

Adımlar:

  • İlk iki adımı takip edin .. ilk örnek açmak için VBA penceresi .
  • O zaman yaz aşağıdaki kodlar içinde-
 Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub 
  • Daha sonra, en aza indirin VBA penceresi .

Kod Dökümü

  • Burada, bir Alt Prosedür, Filter_with_Wildcard() .
  • Daha sonra kullanılan Menzil ("B4") aralığı ayarlamak için.
  • Sonraki , kullanılmış Otomatik Filtre için Filtre içinde Alan:=3 anlamına gelir 3. sütun.
  • Kriter1:="*Post*" için Filtre 'Post' içeren değerler.
  • Şimdi üçüncü adımı takip edin bir şey yok. ilk örnek açmak için Makrolar iletişim kutusu.
  • Seçiniz belirtilen Makro adı ve Çalıştır'a basın .

Ardından istediğiniz çıktıyı alacaksınız.

Daha fazlasını okuyun: Excel'de Filtre Nasıl Eklenir (4 Yöntem)

7. Excel'de Filtrelenmiş Verileri Yeni Bir Sayfaya Kopyalamak için Excel VBA'yı Gömün

Veri kümemde bazı Filtrelenmiş veriler olduğunu görün. Şimdi bunları aşağıdakileri kullanarak yeni bir sayfaya kopyalayacağım VBA . Bu kodlar sayfada düzgün çalışmayacaktır, bunları modülde uygulamanız gerekecektir.

Adımlar:

  • Alt+F11 tuşlarına basın açmak için VBA

  • Sonra tıklayın Insert> Modül için bir modül açın .

  • Şimdi yaz aşağıdaki kodlar -
 Sub Copy_Filtered_Data_NewSheet() Dim xRng As Range Dim xWS As Worksheet If Worksheets("Copy Filtered Data").AutoFilterMode = False Then MsgBox "Noo filtered data" Exit Sub End If Set xRng = Worksheets("Copy Filtered Data").AutoFilter.Range Set xWS = Worksheets.Add xRng.Copy Range("G4") End Sub 
  • O zaman minimize edin VBA

Kod Dökümü

  • Burada, bir Alt Prosedür, Copy_Filtered_Data_NewSheet() .
  • Bundan sonra beyan edilen iki değişkenli - x Rng Menzil ve xWS Çalışma Sayfası Olarak.
  • Daha sonra kullanılan bir EĞER ifadesi kontrol etmek için Filtrelenmiş
  • Daha sonra, kullanılan MsgBox çıktıyı göstermek için.
  • Daha sonra kullanılan Worksheets("Filtrelenmiş Verileri Kopyala").AutoFilter.Range seçmek için Filtrelenmiş aralık ve kullanılmış Ekle yeni bir sayfa eklemek için.
  • Sonunda, Kopyala Aralık("G4") kopyalayacaktır Filtrelenmiş verilerini yeni sayfa .
  • Sonra görüşürüz, üçüncü adımı takip edin bir şey yok. ilk örnek açmak için Makrolar iletişim kutusu .
  • O zaman seçin belirtilen Makro adı ve Çalıştır'a basın .

Şimdi Excel'in yeni bir sayfa açtığını ve Filtrelenmiş satırları kopyaladığını görün.

Daha fazlasını okuyun: Excel Filtresi için Kısayol (Örneklerle 3 Hızlı Kullanım)

8. Açılır Liste Kullanarak Verileri Filtrelemek için VBA Kodunu Uygulayın

Son örneğimizde, önce cinsiyetler için bir açılır liste oluşturacağız, ardından bunu verileri Filtrelemek için kullanacağız. Bunun için, cinsiyet kriterini başka bir konuma yerleştirdim ve Hücre D14 .

Adımlar:

  • Seçiniz Hücre D14 .
  • O zaman tıklayın aşağıdaki gibi: Veri> Veri Araçları> Veri Doğrulama> Veri Doğrulama.

Kısa süre sonra, bir iletişim kutusu açılacak.

Liste Seçiniz bir şey yok. Açılmaya izin ver .

O zaman Aç simgesine tıklayın bir şey yok. Kaynak kutusu .

Şimdi kriter aralığını seçin ve Enter düğmesine basın .

  • Şu anda, sadece Tamam'a basın .

Şimdi bizim aşağı açılır liste hazır.

  • Şimdi İlk iki adımı takip edin .. ilk örnek açmak için VBA penceresi .
  • O zaman yaz aşağıdaki kodlar içinde-
 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$14" Then If Range("D14") = "All" Then Range("B4").AutoFilter Else Range("B4").AutoFilter Field:=2, Criteria1:=Range("D14") End If End Sub 
  • O zaman VBA penceresini simge durumuna küçültme .

Kod Dökümü

  • Burada, bir Özel Alt Prosedür, Worksheet_Change(ByVal Target As Range).
  • Sonra, seçtim Çalışma Sayfası gelen Genel ve Değişim gelen Beyanlar .
  • Daha sonra Adres yerini bilmek için.
  • Son olarak EĞER ifadesinde kullanılan Otomatik Filtre yöntemi ile Saha ve Kriterler
  • Şimdi sadece açılır listeden kriterleri seçin ve Filtre etkinleştirilecektir .

İşte burada Filtrelenmiş seçtikten sonra çıktı Erkek bir şey yok. aşağı açılır .

Daha fazlasını okuyun: Excel'de Başka Bir Sayfadaki Listeye Göre Nasıl Filtreleme Yapılır (2 Yöntem)

Uygulama Bölümü

Yukarıda verilen Excel dosyasında, açıklanan yolları uygulamak için bir alıştırma sayfası alacaksınız.

Sonuç

Umarım yukarıda açıklanan prosedürler kullanmak için yeterince iyi olur VBA koduna Filtre Yorum bölümünde herhangi bir soru sormaktan çekinmeyin ve lütfen bana geri bildirimde bulunun.

Hugh West, sektörde 10 yılı aşkın deneyime sahip oldukça deneyimli bir Excel eğitmeni ve analistidir. Muhasebe ve Finans alanında lisans derecesine ve İşletme alanında yüksek lisans derecesine sahiptir. Hugh öğretme tutkusuna sahiptir ve takip etmesi ve anlaması kolay benzersiz bir öğretim yaklaşımı geliştirmiştir. Excel konusundaki uzman bilgisi, dünya çapında binlerce öğrencinin ve profesyonelin becerilerini geliştirmesine ve kariyerlerinde başarılı olmasına yardımcı olmuştur. Hugh, blogu aracılığıyla bilgisini dünyayla paylaşıyor, bireylerin ve işletmelerin tam potansiyellerine ulaşmalarına yardımcı olmak için ücretsiz Excel eğitimleri ve çevrimiçi eğitimler sunuyor.