Excel VBA: Paano Mag-filter gamit ang Maramihang Pamantayan sa Array (7 Mga Paraan)

  • Ibahagi Ito
Hugh West

Kung naghahanap ka ng mga paraan upang i-filter na may maraming array ng pamantayan sa Excel VBA , nasa tamang lugar ka. Ang pag-filter ng malaking dataset batay sa maraming pamantayan ay maaaring gawing mas madali sa tulong ng VBA mga code sa halip na gamitin ang kumbensyonal na feature ng Excel.

Kaya, simulan natin ang aming pangunahing artikulo.

I-download ang Workbook

I-filter gamit ang Maramihang Pamantayan.xlsm

7 Paraan para Mag-filter gamit ang Maramihang Pamantayan sa Array Gamit ang Excel VBA

Sa sumusunod na dataset, mayroon kaming ilang talaan ng mga marka na tumutugma sa pangalan ng mga mag-aaral at kanilang mga id. Susubukan naming i-filter ang dataset na ito batay sa iba't ibang pamantayan bilang array sa pamamagitan ng paggamit ng ilang code.

Ginamit namin ang bersyon ng Microsoft Excel 365 dito, ikaw ay maaaring gumamit ng anumang iba pang mga bersyon ayon sa iyong kaginhawahan.

Paraan-1: I-filter gamit ang Maramihang Pamantayan bilang Mga Teksto sa Array

Dito, susubukan naming i-filter ang sumusunod na dataset batay sa Pangalan ng Mag-aaral column para sa maraming pamantayan na naglalaman ng mga string Emily , Daniel , at Gabriel sa isang array.

Step-01 :

➤ Pumunta sa Developer Tab >> Visual Basic Option.

Pagkatapos, magbubukas ang Visual Basic Editor .

➤ Pumunta sa Insert Tab >> Module Option.

Pagkatapos nito, isang Module ay magigingginawa.

Step-02 :

➤ Isulat ang sumusunod na code

8823

Dito, idineklara namin ang mga pangalan ng header sa hanay B3:D3 kung saan ilalapat namin ang filter at Field:=2 ay ang numero ng column ng hanay na ito batay sa kung saan namin gagawin ang proseso ng pag-filter na ito.

Sa wakas, itinakda namin ang pamantayan bilang array para sa pagdedeklara ng maraming pangalan ng mga mag-aaral gaya ng Emily , Daniel , at Gabriel .

➤ Pindutin ang F5 .

Pagkatapos, ikaw Ipapa-filter ang dataset para sa maraming pamantayan upang ipakita ang pangalan ng mga mag-aaral at ang kanilang katumbas na Mga Id at Mga Marka para sa mga mag-aaral Emily , Daniel , at Gabriel .

Magbasa Nang Higit Pa: Mag-filter ng Maramihang Pamantayan sa Excel (4 Angkop na Paraan)

Paraan-2: I-filter gamit ang Multiple Number Criteria sa Array Gamit ang Excel VBA

Dito, ifi-filter namin ang sumusunod na dataset para sa mga id 101135 , 10 1137 , at 101138 sa pamamagitan ng paggamit ng mga numerong ito bilang maramihang pamantayan sa isang array.

Mga Hakbang :

➤ Sundin ang Hakbang-01 ng Paraan-1 .

➤ Isulat ang sumusunod na code

2659

Dito, idineklara namin ang mga pangalan ng header sa hanay na B3:D3 kung saan ilalapat namin ang filter at Field:=2 ay ang numero ng column ng hanay na ito batay sa kung saan kami gagawin itong pag-filterproseso.

Sa wakas, itinakda namin ang pamantayan bilang array para sa pagdedeklara ng maraming id ng mga mag-aaral gaya ng 101135 , 101137 , at 101138 at inilagay namin ang mga ito sa loob ng inverted comma upang tukuyin ang mga ito bilang mga string dahil gagana ang AutoFilter para lamang sa isang array ng mga string.

➤ Pindutin ang F5 .

Pagkatapos nito, makukuha mo ang mga pangalan at marka ng mga mag-aaral na may mga id 101135 , 101137 , at 101138 .

Magbasa Nang Higit Pa: VBA Upang Kumuha ng Mga Natatanging Halaga mula sa Column sa Array sa Excel (3 Pamantayan)

Paraan-3: Pagtatakda ng Maramihang Pamantayan sa Isang Saklaw para sa Paggamit bilang Array

Dito, inilista namin ang pamantayan sa List column na naglalaman ng mga id 101134 , 101135 , at 101136 batay sa kung saan namin gagawin ang aming proseso ng pag-filter.

Mga Hakbang :

➤ Sundin ang Hakbang-01 ng Paraan-1 .

➤ Isulat ang sumusunod na code

2250

Dito , may decl kami ay ID_range , k bilang Variant at ID_range ay ang array na mag-iimbak ng maraming pamantayan, at k ay ang pagtaas mula sa mas mababang limitasyon hanggang sa itaas na limitasyon ng array na ito. Para sa pagkakaroon ng lower limit at upper limit ginamit namin ang LBOUND function at UBOUND function ayon sa pagkakabanggit.

Ang FOR loop ay ginagamit para sa pag-convert ng mga halaga maliban sa mga stringsa array sa mga string sa tulong ng CStr function . Sa wakas, ginamit namin ang array na ito bilang Criteria1 .

➤ Pindutin ang F5 .

Pagkatapos, ikaw ay makukuha ang mga pangalan at marka ng mga mag-aaral na may mga id 101134 , 101135 , at 101136 .

Magbasa Nang Higit Pa: I-filter ang Iba't ibang Column ayon sa Maramihang Pamantayan sa Excel VBA

Mga Katulad na Pagbasa

  • Paano I-filter ang Mga Natatanging Value sa Excel (8 Madaling Paraan)
  • Magsagawa ng Custom na Filter sa Excel (5 Mga Paraan)
  • Kalkulahin ang Average ng isang Array na may VBA (Macro, UDF, at UserForm)
  • Shortcut para sa Excel Filter (3 Mabilis na Paggamit na may Mga Halimbawa)

Paraan-4: Paggamit ng SPLIT at JOIN Function para sa Paglikha ng Array na may Maramihang Pamantayan

Dito, gagamitin namin ang sumusunod na listahan sa Listahan column bilang array at para sa tamang pag-filter ng dataset ay gagamitin din namin ang SPLIT function , JOIN function , at TRANSPOSE function sa isang VBA code.

Mga Hakbang :

➤ Fol mababa Hakbang-01 ng Paraan-1 .

➤ Isulat ang sumusunod na code

2414

Dito, ang TRANSPOSE ay magko-convert ang 2D array sa isang 1D array kung hindi man AutoFilter ay hindi gagana, JOIN ay isasama ang bawat isa sa mga value sa isang array ng mga string, at sa wakas, SPLIT ay sisirain ang bawat string upang magbigay ng inputhiwalay ang mga ito bilang pamantayan para sa pag-filter ng dataset.

➤ Pindutin ang F5 .

Sa wakas, makukuha mo ang mga pangalan at marka ng ang mga mag-aaral na may mga id 101134 , 101135 , at 101136 .

Magbasa Nang Higit Pa: Paano Hatiin ang String sa Array sa VBA (3 Paraan)

Paraan-5 : I-filter gamit ang Maramihang Pamantayan sa isang Loop para sa Array na may VBA

Sa seksyong ito, i-filter namin ang sumusunod na dataset depende sa Student Id column para sa maramihang pamantayan gaya ng nakalista sa column na Listahan .

Mga Hakbang :

➤ Sundin ang Hakbang- 01 ng Paraan-1 .

➤ Isulat ang sumusunod na code

1984

Dito, idineklara namin ang k bilang Integer , ID_range(100) bilang String kung saan ang ID_range ay isang array na mag-iimbak ng hanggang 100 mga value. Upang matukoy ang mga halaga para sa array na ito, ginamit namin ang FOR loop para sa k mula 4 hanggang 6 bilang mga numero ng row ng List column at F ay ang pangalan ng column.

Sa wakas, ginamit namin ang array na ito bilang Criteria1 para sa AutoFilter .

➤ Pindutin ang F5 .

Sa kalaunan, makukuha mo ang mga pangalan at marka ng mga mag-aaral na may mga id 101134 , 101135 , at 101136 .

Magbasa Nang Higit Pa: Mag-filter ng Maramihang Pamantayan sa Excel gamit ang VBA (Parehong AT at OMga Uri)

Paraan-6: Paggamit ng Named Range para sa Maramihang Pamantayan

Dito, inilista namin ang ilang pangalan ng mga mag-aaral sa column na Listahan at pinangalanan ito saklaw bilang Mag-aaral . Gamit ang pinangalanang hanay na ito, tutukuyin namin ang isang array na maglalaman ng maraming pamantayan para sa tampok na AutoFilter .

Mga Hakbang :

➤ Sundin ang Hakbang-01 ng Paraan-1 .

➤ Isulat ang sumusunod na code

1498

Dito, idineklara namin ang Student_range , k bilang isang Variant , at ginamit ang TRANSPOSE function para i-convert ang 2D array ng pinangalanang range Mag-aaral sa isang 1D array at pagkatapos ay i-store ito sa Student_range . Pagkatapos, ginagamit ito bilang Criteria1 para sa AutoFilter paraan.

➤ Pindutin ang F5 .

Pagkatapos, ipapa-filter mo ang dataset para sa maraming pamantayan upang ipakita ang pangalan ng mga mag-aaral at ang kanilang katumbas na Mga Id at Mga Marka para sa mga mag-aaral Jefferson , Emily , at Sara .

Kaugnay na Nilalaman: VBA to Transpose Array sa Excel (3 Paraan)

Paraan-7: I-filter ang Talahanayan na may Maramihang Pamantayan sa isang Array

Dito, mayroon kaming sumusunod na Talahanayan na ang pangalan ay Table1 at gumagamit ng Excel VBA susubukan naming i-filter ang talahanayang ito batay sa mga pangalang Emily , Daniel , at Gabriel bilang maramihang pamantayan sa isang array.

Mga Hakbang :

➤ Sundin ang Hakbang-01 ng Paraan-1 .

➤ Isulat ang sumusunod na code

2630

Dito, ListObjects(“Table1”) ay ginagamit para sa pagtukoy sa talahanayan Table1 , Field:=2 para sa pag-set up ng pangalawang column ng hanay na ito bilang base ng proseso ng pag-filter at sa wakas ay tinukoy namin ang isang array naglalaman ng maraming pangalan para sa Criteria1 .

➤ Pindutin ang F5 .

Sa kalaunan, magkakaroon ka ng dataset na-filter down para sa maraming pamantayan upang ipakita ang pangalan ng mga mag-aaral at ang kanilang katumbas na Mga Id at Mga Marka para sa mga mag-aaral Emily , Daniel , at Gabriel .

Magbasa Nang Higit Pa: Excel VBA: Talahanayan ng Filter Batay sa Halaga ng Cell (6 Madaling Paraan)

Seksyon ng Pagsasanay

Para sa paggawa ng pagsasanay sa pamamagitan ng ikaw mismo ay nagbigay kami ng seksyong Practice tulad ng nasa ibaba sa isang sheet na pinangalanang Practice . Mangyaring gawin ito nang mag-isa.

Konklusyon

Sa artikulong ito, sinubukan naming saklawin ang mga paraan upang mag-filter gamit ang maraming pamantayan bilang array gamit ang Excel VBA madali. Sana ay mahanap mo itong kapaki-pakinabang. Kung mayroon kang anumang mga mungkahi o tanong, huwag mag-atubiling ibahagi ang mga ito sa seksyon ng komento.

Si Hugh West ay isang napakaraming Excel trainer at analyst na may higit sa 10 taong karanasan sa industriya. May hawak siyang Bachelor's degree sa Accounting and Finance at Master's degree sa Business Administration. Si Hugh ay may hilig sa pagtuturo at nakabuo ng kakaibang diskarte sa pagtuturo na madaling sundin at maunawaan. Ang kanyang dalubhasang kaalaman sa Excel ay nakatulong sa libu-libong mag-aaral at propesyonal sa buong mundo na mapabuti ang kanilang mga kasanayan at maging mahusay sa kanilang mga karera. Sa pamamagitan ng kanyang blog, ibinahagi ni Hugh ang kanyang kaalaman sa mundo, nag-aalok ng mga libreng Excel tutorial at online na pagsasanay upang matulungan ang mga indibidwal at negosyo na maabot ang kanilang buong potensyal.