Cuprins
Atunci când lucrați cu cantități mari de date și trebuie să setați mai multe filtre simultan, Filtrare avansată în Excel vine la îndemână. De asemenea, poate fi aplicat pentru a curăța datele prin eliminarea de copii. În timp ce se aplică Filtru avansat , a VBA este mult mai ușor de executat. În acest tutorial, vă vom arăta cum să aplicați codul Filtru avansat VBA pentru un interval de criterii multiple în Excel .
Descărcați caietul de practică
Descărcați acest caiet de exerciții pentru a vă exercita în timp ce citiți acest articol.
VBA Filtru avansat.xlsm5 Metode eficiente pentru filtrul avansat VBA cu criterii multiple într-o gamă în Excel
În următoarele secțiuni de mai jos, vom discuta 5 metode de utilizat Filtru avansat VBA pentru mai multe criterii. La început, este posibil să aveți nevoie să cunoașteți sintaxa din Filtru avansat VBA .
VBA Advanced Filter Syntax:
- AdvancedFilter: se referă la un obiect de interval. Puteți seta intervalul în care doriți să aplicați filtrul.
- Acțiune: este un argument obligatoriu care are două opțiuni, xlFilterInPlace sau xlFilterCopy . xlFilterInPlace este utilizat pentru a filtra valoarea în locul în care se află setul de date. xlFilterCopy se utilizează pentru a obține valoarea filtrului într-o altă locație dorită.
- CriteriaRange: reprezintă criteriul pentru care valoarea va fi filtrată.
- CopyToRange: este locația în care veți salva rezultatele filtrului.
- Unic: este un argument opțional. Utilizați opțiunea Adevărat pentru a filtra doar valorile unice. În caz contrar, în mod implicit, este considerat ca fiind Fals .
În imaginea de mai jos, este furnizat un set de date de probă pentru a aplica toate filtrele pe care dorim să le efectuăm.
1. Aplicați filtrul avansat VBA pentru criteriile OR într-o gamă în Excel
În prima metodă, vom aplica metoda OR criterii folosind Filtru avansat VBA Să spunem că dorim să filtrăm datele pentru numele produsului. Cookie-uri și Ciocolată Pentru a aplica OR Urmați pașii descriși mai jos pentru a îndeplini această sarcină.
Pasul 1:
- Apăsați Alt + F11 pentru a deschide fereastra Macro VBA .
- Faceți clic pe butonul Introduceți.
- Alegeți Modul.
Pasul 2:
- Apoi, lipiți următoarele VBA pentru a aplica codul OR.
Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Declarați variabila pentru intervalul setului de date și pentru intervalul de criterii Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Setați locația și intervalul intervalului de date și intervalul de criterii Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Aplicați filtrul avansat pentru a filtra setul de date utilizând criteriileDataset_Rng.AdvancedFilter Acțiune:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Pasul 3:
- Apoi, salvați programul și apăsați F5 să funcționeze.
- Prin urmare, veți obține rezultatele filtrate, așa cum se arată în imaginea de mai jos.
Note. Pentru a inversa procesul sau pentru a îndepărta toată pasta de filtrare și pentru a rula VBA program.
Sub Remove_All_Filter() On Error Resume Next 'comanda pentru a elimina toate filtrele pentru a afișa setul de date anterior ActiveSheet.ShowAllData End Sub
- Ca urmare, veți obține versiunea anterioară a setului de date.
Citiți mai mult: Exemple Excel VBA de filtrare avansată cu criterii (6 criterii)
2. Efectuați un filtru avansat VBA pentru criteriul AND într-un interval în Excel
Similar metodei anterioare, vom efectua acum VBA Filtru avansat pentru ȘI Să presupunem că vrem să știm care sunt fursecurile cu prețul de $0.65 așa cum se arată în captura de ecran de mai jos. Pentru a aplica OR trebuie să plasați valoarea în coloane diferite. Pentru a aplica criteriul ȘI urmați instrucțiunile de mai jos.
Pasul 1:
- Pentru a deschide Macro VBA , apăsați Alt + F11
- După ce a fost deschis Macro VBA , lipiți următoarele VBA într-un nou modul.
Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Declarați variabila pentru intervalul setului de date și pentru intervalul de criterii Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Setați locația și intervalul intervalului setului de date și intervalul de criterii Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Aplicați filtrul avansat pentru a filtra setul de date utilizând criteriileDataset_Rng.AdvancedFilter Acțiune:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Pasul 2:
- Apăsați F5 pentru a rula programul după ce l-ați salvat.
- În cele din urmă, obțineți rezultatele filtrate.
Citește mai mult: VBA pentru a copia datele într-o altă foaie cu filtru avansat în Excel
3. Utilizați filtrul avansat VBA pentru criteriul OR cu AND într-un interval în Excel
De asemenea, puteți aplica OR și ȘI De exemplu, doriți să obțineți valorile pentru Cookie-uri sau Ciocolată , dar pentru Cookie-uri, există un alt criteriu de preț $0.65 Urmați procedurile de mai jos pentru a face acest lucru.
Pasul 1:
- Lipiți următoarele VBA coduri după deschiderea Macro VBA .
Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Declarăți variabila pentru intervalul setului de date și pentru intervalul de criterii Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Setați locația și intervalul intervalului setului de date și intervalul de criterii Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Aplicați filtrul avansat pentru a filtra setul de date utilizând criteriileDataset_Rng.AdvancedFilter Acțiune:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Pasul 2:
- Apoi, salvați mai întâi programul, apăsând F5 pentru a o rula.
- În consecință, veți găsi valorile cu anumite ȘI și OR.
Citiți mai mult: Aplicați un filtru avansat bazat pe criterii multiple într-o coloană în Excel
Lecturi similare:
- Filtru avansat cu criterii multiple în Excel (15 exemple adecvate)
- Filtru dinamic avansat Excel (VBA & Macro)
- Cum se utilizează filtrul avansat în VBA (Ghid pas cu pas)
- Filtru avansat cu interval de criterii în Excel (18 Applications)
- Excel Filtru avansat nu funcționează (2 Motive & Soluții)
4. Utilizați filtrul avansat VBA pentru valori unice cu criterii multiple în Excel
În plus, dacă aveți duplicate în setul de date, le puteți elimina în timpul filtrării. Vom adăuga Unic argument pentru Adevărat pentru a obține doar valorile unice și a șterge valorile duplicate. Urmați instrucțiunile descrise.
Pasul 1:
- În primul rând, deschideți fereastra VBA Macro prin apăsarea Alt + F11.
- Lipiți următoarele VBA într-un nou modul.
Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Declarați variabila pentru intervalul setului de date și pentru intervalul de criterii Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Setați locația și intervalul intervalului setului de date și intervalul de criterii Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Aplicați filtrul avansat pentru a filtra setul de date utilizând criteriileDataset_Rng.AdvancedFilter Acțiune:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub
Pasul 2:
- Apoi, apăsați F5 pentru a rula programul după salvare.
- Prin urmare, veți obține valori numai pentru cele unice.
Citiți mai mult: Cum să utilizați filtrul avansat pentru înregistrări unice numai în Excel
5. Efectuați Filtru avansat VBA pentru cazul condiționat
În plus față de metodele anterioare, puteți aplica și condiții cu ajutorul formulelor. De exemplu, dorim să găsim valoarea Prețuri totale care sunt mai mari decât $100 Pentru a realiza acest lucru, trebuie doar să urmați pașii.
Pasul 1:
- În primul rând, pentru a deschide fereastra Macro VBA , apăsați Alt + F11 .
- Selectați un nou Modul și lipiți următoarele Coduri VBA .
Sub Apply_VBA_Advanced_Filter_for_Formula() 'Declarați variabila pentru intervalul setului de date și pentru intervalul criteriilor Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Setați locația și intervalul intervalului setului de date și intervalul criteriilor Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Aplicați filtrul avansat pentru a filtra setul de date utilizând criteriileDataset_Rng.AdvancedFilter Acțiune:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub
Pasul 2:
- În al doilea rând, salvați programul și apăsați butonul F5 pentru a vedea rezultatele.
Note. În plus, puteți obține rezultatele într-un spațiu favorabil, fie într-un interval nou, fie într-o foaie de calcul nouă, aplicând funcția xlFilterCopy Pur și simplu, lipiți VBA și rulați-le pentru a obține rezultatele în Foaie6 în gamă B4:E11 .
'Declarați variabila pentru intervalul setului de date și pentru intervalul de criterii Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Setați locația și intervalul intervalului setului de date și intervalul de criterii Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Aplicați filtrul avansat pentru a filtra setul de date utilizând criteriile Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub
- În consecință, vedeți rezultatul final într-o nouă foaie de lucru "Sheet6 .
Citiți mai mult: Cum să utilizați filtrul avansat dacă intervalul de criterii conține text în Excel
Concluzie
În concluzie, sper că acum ați înțeles cum să utilizați VBA filtru avansat în Excel pentru a filtra mai multe intervale de criterii. Toate aceste metode ar trebui să fie folosite pentru a învăța și a exersa cu datele dvs. Uitați-vă peste cartea de practică și puneți în practică ceea ce ați învățat. Datorită sprijinului dvs. vital, suntem inspirați să continuăm să prezentăm seminarii ca aceasta.
Dacă aveți întrebări, nu ezitați să ne contactați. Vă rugăm să ne spuneți ce credeți în secțiunea de comentarii de mai jos.
The Exceldemy va răspunde la solicitările dumneavoastră în cel mai scurt timp posibil.
Rămâneți alături de noi și continuați să învățați.