Excelda ma'lumotlarni filtrlash uchun VBA kodi (8 ta misol)

  • Buni Baham Ko'Ring
Hugh West

Excel Sartlash & Filtr buyrug'i cheklangan diapazonga ega Ma'lumotlarni filtrlash . Lekin VBA -dan foydalanib, siz Ma'lumotlarni filtrlash ni xohlaganingizcha keng diapazonda qilishingiz mumkin. Ushbu maqola sizga VBA kodini VBA yorqin rasmlari bilan VBA kodlari yordamida Ma'lumotlarni filtrlash uchun Excelda ishlatish uchun 8 ta foydali misollarni taqdim etadi.

Amaliy kitobni yuklab oling

Bepul Excel shablonini shu yerdan yuklab olishingiz va o'zingiz mashq qilishingiz mumkin.

Ma'lumotlarni filtrlash uchun VBA kodi.xlsm

Excelda ma'lumotlarni filtrlash uchun VBA kodidan foydalanishga 8 ta misol

Avval ba'zi talabalarning jinsi, holati va ma'lumotlarini ifodalovchi ma'lumotlar to'plamimiz bilan tanishamiz. Yosh .

1. Excelda matn mezonlari asosida ma'lumotlarni filtrlash uchun VBA kodidan foydalaning

Bizning birinchi misolimizda biz VBA to Filtr dan faqat <1 foydalanamiz Ma'lumotlar to'plamining Gender ustunidan>Erkak talabalar.

Qadamlar:

  • O'ng tugmasini bosing varaq sarlavhasi .
  • Keyin Kontekst menyusidan Kodni ko'rish -ni tanlang.

Yaqinda keyin VBA oynasi ochiladi.

  • Quyidagi kodlarni kiriting. it-
1376
  • Keyinroq VBA

ni minimallashtiring Kodlarni taqsimlash

  • Bu yerda men Sub protsedurasini yaratdim, Filter_Data_Text() .
  • Keyin Tegishli varaq nomi e'lon qilish uchun Range xususiyati va diapazon
  • Keyin, men tanlagan Mezon dan foydalanish uchun Avtofiltr usulini ishlatdim, bu erda Maydon:=2 degani ustun 2 . Va Kriteria1:=”Erkak” Erkak ma’lumotlarini Filtrlash .
  • Keyin, Makrolar muloqot oynasini oching, -ni quyidagi tarzda bosing: Dasturchi > Makroslar.

  • kodlarda aytib o'tilganidek, Makro nomini tanlang .
  • Nihoyat, Ishga tushirish -ni bosing.

Endi bizda faqat Erkak talabalar ma'lumotlari Filtrlashdan keyin.

Batafsil o'qing: Excel filtri ma'lumotlariga asoslangan Hujayra qiymati (6 samarali usul)

2. Bir ustunda bir nechta mezon bilan ma'lumotlarni filtrlash uchun VBA kodini qo'llang

Bu erda biz bir ustundagi bir nechta mezon uchun filtrni qilamiz. Ma'lumotlar to'plamining uchinchi ustunidan biz Bitiruvchi va Aspirant talabalar uchun Filtrni o'tkazamiz.

Qadamlar:

  • VBA oynasini ochish uchun birinchi misol ning dastlabki ikki qadamini bajaring.
  • Keyinroq, quyidagi kodlarni ichiga kiriting-
6807
  • Keyin VBA
<0ni minimallashtiring>

Kodlarni taqsimlash

  • Bu yerda men Sub protsedurasini yaratdim, Filter_One_Column() .
  • Keyin bizning tegishli varaq nomi va diapazon
  • ni e'lon qilish uchun Range xususiyatidan foydalanildi. Keyin men dan foydalandimAvtomatik filtrlash usuli oʻzim tanlagan Kriteriyalar dan foydalanish uchun bu yerda Maydon:=3 ustun 3 degan maʼnoni anglatadi. Bu yerda Mezon1:=“Bitiruvchi” va Kriteria2:=“Aspirantura” to Filtr talabaning Maqomini .
  • Nihoyat, men Operator:=xlOr dan OR shartni Filtr ni bir nechta mezonlarga qoʻllash uchun foydalandim.
  • Bunda moment, Makrolar dialog oynasini qutisini ochish uchun birinchi misoldagi uchinchi qadam ga amal qiling.
  • Keyinroq, belgilangan Makro nomini tanlang va Ishga tushirish -ni bosing.

Tez orada siz quyidagi rasm kabi bir nechta mezonlarga asoslangan Filtrlangan qatorlarni olasiz.

Batafsil o'qing: Excelda bir nechta mezonlarni filtrlash (4 mos usul)

3. Excelda turli ustunlardagi bir nechta mezonlar bilan ma'lumotlarni filtrlash uchun VBA kodini qo'llang

Endi biz Filtrni bir nechta mezonlar bo'yicha - Erkak va Bitiruvchi talabalar.

Qadamlar:

  • birinchi misolning dastlabki ikki qadamini bajaring. VBA
  • Keyinroq, quyidagi kodlarni uga yozing-
8955
  • Keyin bu VBA oynasini minimallashtirish .

Kodlarni ajratish

  • Bu yerda men Sub protsedurasini yaratdim, Filtr_Different_Columns() .
  • Keyin, With iborasidan foydalandim>Bir nechta ustun .
  • Keyin Diapazon ishlatilditegishli varaq nomi va diapazon
  • ni e'lon qilish xususiyatidan keyin men Mezon dan foydalanish uchun Avtofiltr usulini ishlatdim. mening tanlovim bu yerda Maydon:=2 2-ustun va Maydon:=3 ustun 3 degan maʼnoni anglatadi.
  • Bu yerda , Jins ustun uchun Kriteria1:=”Erkak” va Filtr uchun Holat ustuni uchun Kriteria1:=“Bitiruvchi” tanlandi turli ustunlar maʼlumotlari.
  • Keyin birinchi misoldagi uchinchi bosqichni bajaring. Makrolar dialog oynasi .
  • Keyinroq, belgilangan Makro nomini tanlang va Ishga tushirish -ni bosing.

Mana, bir nechta mezonlarning natijasi.

Batafsil o'qing: Excel VBA Bir ustunda bir nechta mezon bo'yicha filtrlash (6 ta misol)

4. Excelda eng yaxshi 3 ta elementni filtrlash uchun VBA kodidan foydalaning

Ushbu misolda biz eng yaxshi uch o'quvchini ularning yoshi bo'yicha filtrlaymiz.

Qadamlar:

  • VBA oynasini ochish uchun birinchi misol ning dastlabki ikki qadamini bajaring .
  • Keyin quyidagi kodlarni ichiga kiriting-
4910
  • Keyin ni minimallashtiring. VBA oynasi .

Kodlarni taqsimlash

  • Bu erda men Sub protsedura yaratdi, Filter_Top3_Items() .
  • Va keyin Operator:=xlTop10Items to Filtr uchun kuchli uchlik ma'lumotlar .
  • Endi uchinchi qadamni bajaring birinchi misol -ni ochish uchun Makroslar dialog oynasi quti .
  • Keyin kodlarda aytib o'tilganidek Makro nomini tanlang va Ishga tushirish tugmasini bosing.

Keyin quyidagi rasmdagi kabi natijani olasiz-

Batafsil o'qing: Excel VBA (4 usul) yordamida hujayra qiymatiga qarab qanday filtrlash mumkin?

O'xshash o'qishlar

  • Qanday qilib nusxa ko'chirish va joylashtirish Filtr Excelda qo'llaniladi
  • Excelda noyob qiymatlarni qanday filtrlash mumkin (8 oson usul)
  • VBA yordamida Excelda bir nechta mezonlarni filtrlash (ikkalasi ham) VA va Yoki turlari)
  • Excelda matn filtridan qanday foydalanish (5 ta misol)
  • Excelda sana boʻyicha qanday filtrlash (4 ta tezkor) Usullari)

5. Excelda eng yaxshi 50 foizni filtrlash uchun VBA kodidan foydalaning

Keling, VBA kodlaridan eng yaxshi ellik foiz talabalarni yoshiga qarab filtrlash uchun foydalanaylik. .

Qadamlar:

  • Birinchi, Birinchi misoldagi birinchi ikki qadamni bajaring VBA oynasini ochish uchun.
  • Keyinroq, quyidagi kodlarni ichiga kiriting-
9346
  • VBA oynasini minimallashtiring.

Kodlar taqsimoti

  • Bu yerda men Sub protsedurasini yaratdim, Filter_Top50_Percent() .
  • Keyinchalik Operator:=xlTop10Percent dan <1ga qadar foydalanildi> eng yuqori ellik foizni filtrlang ustun-4 .
  • Hozirda, birinchi misoldan uchinchi bosqichni bajaring <-ni ochish uchun 1>Makrolar muloqot oynasi.
  • Keyin belgilangan Makro nomini tanlang va Ishga tushirish tugmasini bosing.

Jami 7 talaba bor edi, shuning uchun 50 foiz uchun u taxminan uch talabani koʻrsatmoqda.

Batafsil o'qing: Excelda foyda foizi formulasidan qanday foydalanish kerak (3 ta misol)

6 . Wildcard yordamida ma'lumotlarni filtrlash uchun VBA kodini qo'llang

Biz Excelda ma'lumotlarni filtrlash uchun Wildcard belgilar-* (yulduzcha) VBA kodlari da foydalanishimiz mumkin. Holat ustunidan biz faqat “Post” ni oʻz ichiga olgan qiymatlarni filtrlaymiz.

Qadamlar:

  • birinchi misol ning dastlabki ikki qadamini bajarib, VBA oynasini ochadi.
  • Keyin yozing. quyidagi kodlar inchi-
8588
  • Keyinroq VBA oynasini minimallashtiring.

Kodlarni taqsimlash

  • Bu yerda men Sub protsedurasini yaratdim, Filter_with_Wildcard() .
  • Keyin diapazonni oʻrnatish uchun Range (“B4”) dan foydalanildi.
  • Keyingi , ishlatilgan Avtofiltr to Filtr da Maydon:=3 3-ustun degani .
  • Mezon 1:=”*Post *” Filtrni ga “Post” o‘z ichiga olgan qiymatlarni o‘tkazing.
  • Endi uchinchi bosqichni birinchi dan boshlab bajaring misol Makrolar dialogini ochish uchunqutisi.
  • belgilangan Makro nomi -ni tanlang va Ishga tushirish -ni bosing.

Keyin siz kerakli natijani olasiz.

Batafsil o'qing: Excelda filtrni qanday qo'shish kerak (4 usul )

7. Filtrlangan ma'lumotlarni Excelning yangi varag'iga nusxalash uchun Excel VBA-ni joylashtiring

Ma'lumotlar to'plamimda filtrlangan ma'lumotlar mavjudligiga qarang. Endi men ularni VBA yordamida yangi varaqga ko'chiraman. Bu kodlar varaqda to'g'ri ishlamaydi, siz ularni modulda qo'llashingiz kerak bo'ladi.

Qadamlar:

  • VBA

  • ni ochish uchun Alt+F11 tugmalarini bosing, so'ng Qo'shish > Modul uchun modulni ochish .

  • Endi quyidagi kodlarni yozing. –
2399
  • Keyin VBA-ni minimallashtiring

Kodlarni taqsimlash

  • Bu yerda men Sub protsedurasini yaratdim, Copy_Filtered_Data_NewSheet() .
  • Bundan keyin ikki o'zgaruvchini e'lon qildi - x Rng diapazon sifatida va xWS ishchi varaq sifatida.
  • Keyin IF iborasi dan foydalanildi. belgilang Filtrlangan
  • Keyinroq, chiqishni koʻrsatish uchun MsgBox ishlatildi.
  • Keyin Ishchi varaqlar (“Filtrlangan maʼlumotlarni nusxalash”) ishlatiladi. Avtomatik filtr .Range Filtrlangan diapazonini tanlash uchun va yangi varaq qo'shish uchun Qo'shish dan foydalaning.
  • Nihoyat, Nusxalash oralig'i(“G4”) Filtrlangan maʼlumotlarini yangi varaqga koʻchiradi.
  • Keyinroq, quyidagilarga amal qiling.uchinchi qadam birinchi misol dan Makrolar muloqot oynasini ochish uchun.
  • Keyin belgilangan Makro nomini va Ishga tushirish -ni bosing.

Endi Excel yangi varaq ochganini va Filtrlangan qatorlardan nusxa olganini ko'ring.

Batafsil o'qing: Excel filtri uchun yorliq (misollar bilan 3 ta tezkor foydalanish)

8. Ochiladigan ro'yxat yordamida ma'lumotlarni filtrlash uchun VBA kodini qo'llang

Oxirgi misolimizda biz avval jinslar uchun ochiladigan ro'yxat tuzamiz, so'ngra undan ma'lumotlarni filtrlash uchun foydalanamiz. Buning uchun men jins mezonlarini boshqa joyga joylashtirdim va biz D14 uyasida ochiladigan roʻyxatni tuzamiz.

Qadamlar:

  • Cell D14 -ni tanlang.
  • Keyin -ni quyidagi tarzda bosing: Data > Data Tools > Ma'lumotlarni tekshirish > Ma'lumotlarni tekshirish.

Ko'p o'tmay, muloqot oynasi ochiladi.

Tanlash Ro'yxat Ruxsat berish .

Keyin Manba oynasidagi Ochish belgisini bosing .

Endi mezonlar oralig'ini tanlang va Kirish tugmasini bosing .

  • Ayni damda OK tugmasini bosing.

Endi bizning ochiladigan roʻyxat tayyor.

  • Endi VBA oynasini ochish uchun birinchi misolning birinchi ikki qadamini bajaring .
  • Keyin quyidagi kodlarni uning ichiga yozing-
1121
  • Keyin VBA-ni minimallashtiringoyna .

Kodlarni taqsimlash

  • Bu erda men yaratdim a Private Sub protsedurasi, Worksheet_Change (ByVal Maqsad oralig'i sifatida).
  • Keyin men Umumiy dan Ish varag'i va Deklaratsiyalar dan O'zgartirish ni tanladim.
  • Keyin joylashuvni bilish uchun Manzil ni oʻrnating.
  • Nihoyat, AGAR iborasida Avtomatik filtr usulini maydon <2 bilan ishlatdi>va Kriteriyalar
  • Endi faqat ochiladigan ro'yxatdan mezonlarni tanlang va Filtr faollashadi .

Mana Filtrlangan chiqishi ochiladigan menyudan Erkak ni tanlagandan keyin.

Batafsil o'qing: Excelda boshqa varaqdagi ro'yxat bo'yicha qanday filtrlash mumkin (2 usul)

Mashq bo'limi

Tushuntirilgan usullarni mashq qilish uchun yuqorida keltirilgan Excel faylida mashq varag'ini olasiz.

Xulosa

Umid qilamanki, yuqorida tavsiflangan protseduralar VBA koddan filtr ma'lumotlarni Excelda ishlatish uchun etarli bo'ladi. Izoh bo'limida har qanday savolni berishingiz mumkin va menga fikr bildiring.

Hugh West - bu sohada 10 yildan ortiq tajribaga ega bo'lgan yuqori tajribali Excel treneri va tahlilchisi. Buxgalteriya hisobi va moliya yo‘nalishi bo‘yicha bakalavr va biznes boshqaruvi bo‘yicha magistr darajasiga ega. Xyu o'qitishga ishtiyoqi bor va unga amal qilish va tushunish oson bo'lgan o'ziga xos o'qitish usulini ishlab chiqdi. Uning Excel bo'yicha ekspert bilimlari butun dunyo bo'ylab minglab talabalar va mutaxassislarga o'z malakalarini oshirishga va o'z martabalarida muvaffaqiyat qozonishlariga yordam berdi. Xyu o'z blogi orqali o'z bilimlarini dunyo bilan baham ko'radi, jismoniy shaxslar va korxonalarga o'z salohiyatini to'liq ro'yobga chiqarishga yordam berish uchun bepul Excel darsliklari va onlayn treninglarni taklif qiladi.