Cod VBA pentru filtrarea datelor în Excel (8 exemple)

  • Imparte Asta
Hugh West

Excel Sortare & Comandă de filtrare are o rază de acțiune limitată la Filtrează datele . dar folosind VBA puteți Filtrează datele într-o gamă largă, după cum doriți. Acest articol vă va oferi 8 exemple utile pentru a utiliza VBA cod la Filtrează datele în excel folosind VBA coduri cu ilustrații vii.

Descărcați caietul de practică

Puteți descărca șablonul Excel gratuit de aici și puteți exersa pe cont propriu.

Codul VBA pentru filtrarea datelor.xlsm

8 Exemple de utilizare a codului VBA pentru a filtra datele în Excel

Să facem mai întâi cunoștință cu setul nostru de date care reprezintă niște sexul, statutul și vârsta studenților .

1. Utilizați codul VBA pentru a filtra datele pe baza unui criteriu text în Excel

În primul nostru exemplu, vom folosi VBA la Filtru doar Masculin studenți din Sex din setul de date.

Pași:

  • Faceți clic dreapta pe pe titlul foii .
  • Apoi selectați Vizualizare cod de la Meniul contextual .

La scurt timp după aceea, un VBA se va deschide o fereastră.

  • Tip următoarele coduri în ea...
 Sub Filter_Data_Text() Worksheets("Text Criteria").Range("B4").AutoFilter Field:=2, Criteria1:="Male" End Sub 
  • Mai târziu, minimalizați VBA

Defalcarea codului

  • Aici, am creat un Sub procedură, Filter_Data_Text() .
  • Apoi a folosit Gama pentru a declara proprietățile noastre respective numele foii și gama
  • Apoi, am folosit metoda AutoFilter pentru a utiliza Criterii la alegerea mea, unde Câmp:=2 înseamnă coloana 2 . și Criteria1:="Bărbat" la Filtru datele pentru Bărbat.
  • După aceea, pentru deschis la Caseta de dialog Macros , click după cum urmează: Dezvoltator> Macros.

  • Selectați la Numele macroului așa cum se menționează în coduri .
  • În cele din urmă, doar apăsați Run .

Acum, uitați-vă că avem doar Date despre studenții de sex masculin după Filtrare .

Citește mai mult: Excel Filtrează datele pe baza valorii celulei (6 moduri eficiente)

2. Aplicați codul VBA pentru a filtra datele cu mai multe criterii pe o coloană

Aici, vom... Filtru pentru mai multe criterii într-o singură coloană. Din coloana numărul trei a setului de date, vom Filtru pentru Absolvent și Studii postuniversitare studenți.

Pași:

  • Urmați primii doi pași a primul exemplu pentru a deschide fereastra Fereastra VBA .
  • Mai târziu, tip următoarele coduri în ea...
 Sub Filter_One_Column() Worksheets("One Column").Range("B4").AutoFilter Field:=3, Criteria1:="Graduate", Operator:=xlOr, Criteria2:="Postgraduate" End Sub 
  • Apoi, minimizați VBA

Defalcarea codului

  • Aici, am creat un Sub procedură, Filter_One_Column() .
  • Apoi a folosit Gama pentru a declara proprietățile noastre respective numele foii și gama
  • Apoi, am folosit metoda AutoFilter pentru a utiliza Criterii la alegerea mea, unde Câmp:=3 înseamnă coloana 3 . Poftim, Criteria1:="Absolvent" și Criteria2:="Postuniversitar" la Filtru studentul Stare .
  • În cele din urmă, am folosit Operator:=xlOr pentru a aplica OR condiție Filtru pentru mai multe criterii.
  • În acest moment, urmăriți la al treilea pas de la primul exemplu pentru a deschide fereastra Caseta de dialog Macros cutie .
  • Mai târziu, selectați specificat Numele macroului și apăsați Run .

La scurt timp după aceea, veți obține rândurile filtrate pe baza mai multor criterii, ca în imaginea de mai jos.

Citește mai mult: Filtrarea mai multor criterii în Excel (4 moduri adecvate)

3. Aplicați codul VBA pentru a filtra datele cu criterii multiple în diferite coloane în Excel

Acum vom... Filtru pentru mai multe criterii. Masculin și Absolvent studenți.

Pași:

  • Urmați primii doi pași a primul exemplu pentru a deschide fereastra VBA
  • Mai târziu, scrie următoarele coduri în ea...
 Sub Filter_Different_Columns() With Worksheets("Different Columns").Range("B4") .AutoFilter Field:=2, Criteria1:="Male" .AutoFilter Field:=3, Criteria1:="Graduate" End With End Sub 
  • După aceea reduceți la minimum fereastra VBA .

Defalcarea codului

  • Aici, am creat un Sub procedură, Filter_Different_Columns() .
  • Apoi, am folosit Cu declarație pentru a utiliza Coloană multiplă .
  • Apoi a folosit Gama pentru a declara proprietățile noastre respective numele foii și gama
  • Apoi, am folosit metoda AutoFilter pentru a utiliza Criterii la alegerea mea, unde Câmp:=2 înseamnă coloana 2 și Câmp:=3 înseamnă coloana 3 .
  • Aici, selectat Criteria1:="Bărbat" pentru Sex coloana și Criteria1:="Absolvent" pentru Stare coloana la Filtru date din coloane diferite .
  • Apoi urmați al treilea pas de la primul exemplu pentru a deschide fereastra Caseta de dialog Macros .
  • Mai târziu, selectați specificat Numele macroului și apăsați Run .

Iată rezultatul criteriilor multiple.

Citește mai mult: Excel VBA pentru a filtra în aceeași coloană prin criterii multiple (6 exemple)

4. Utilizați codul VBA pentru a filtra primele 3 elemente din Excel

În acest exemplu, vom Filtrați primii trei studenți în conformitate cu vârstă .

Pași:

  • Urmați primii doi pași a primul exemplu pentru a deschide fereastra Fereastra VBA .
  • Apoi tip următoarele coduri în ea...
 Sub Filter_Top3_Items() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="3", Operator:=xlTop10Items End Sub 
  • După aceea, reduceți la minimum Fereastra VBA .

Defalcarea codului

  • Aici, am creat un Sub procedură, Filter_Top3_Items() .
  • Și apoi a folosit Operator:=xlTop10Items la Filtru pentru primele trei date .
  • Acum urmați al treilea pas de la primul exemplu pentru a deschide fereastra Caseta de dialog Macros cutie .
  • Apoi selectați numele macroului așa cum se menționează în coduri și apăsați Run .

Apoi veți obține o ieșire ca în imaginea de mai jos.

Citește mai mult: Cum să filtrați pe baza valorii celulei utilizând Excel VBA (4 metode)

Lecturi similare

  • Cum să copiați și să lipiți atunci când se aplică un filtru în Excel
  • Cum să filtrați valorile unice în Excel (8 moduri simple)
  • Filtrarea criteriilor multiple în Excel cu VBA (ambele tipuri AND și OR)
  • Cum se utilizează filtrul de text în Excel (5 exemple)
  • Cum să filtrați după dată în Excel (4 metode rapide)

5. Utilizați codul VBA pentru a filtra primele 50 de procente în Excel

Să folosim VBA coduri pentru a filtra 50% din primii cincizeci la sută de studenți în funcție de vârsta lor .

Pași:

  • În primul rând, Urmați primii doi pași a primul exemplu pentru a deschide fereastra Fereastra VBA .
  • Mai târziu, tip următoarele coduri în ea...
 Sub Filter_Top50_Percent() ActiveSheet.Range("B4").AutoFilter Field:=4, Criteria1:="50", Operator:=xlTop10Percent End Sub 
  • Minimizați Fereastra VBA .

Defalcarea codului

  • Aici, am creat un Sub procedură, Filter_Top50_Percent() .
  • Mai târziu, a folosit Operator:=xlTop10Percent la Filtrează primele cincizeci la sută din coloana-4 .
  • În acest moment, urmați al treilea pas de la primul exemplu pentru a deschide fereastra Caseta de dialog Macros.
  • Apoi selectați specificat Numele macroului și apăsați Run .

A fost un total de 7 studenți deci pentru 50 la sută , acesta arată aproximativ trei studenți .

Citește mai mult: Cum se utilizează formula procentului de profit în Excel (3 exemple)

6. Aplicați codul VBA pentru a filtra datele folosind caractere wildcard

Putem folosi Caractere wildcard-* (asterisc) în Coduri VBA pentru a filtra datele în Excel. Din fereastra Coloana de stare , vom filtra doar valori care conțin "Post .

Pași:

  • Urmați primii doi pași a primul exemplu pentru a deschide fereastra Fereastra VBA .
  • Apoi scrie următoarele coduri în ea...
 Sub Filter_with_Wildcard() ActiveSheet.Range("B4").AutoFilter Field:=3, Criteria1:="*Post*" End Sub 
  • Mai târziu, minimalizați Fereastra VBA .

Defalcarea codului

  • Aici, am creat un Sub procedură, Filter_with_Wildcard() .
  • Apoi a folosit Gama ("B4") pentru a seta intervalul.
  • Următorul , folosit AutoFilter la Filtru în Câmp:=3 înseamnă coloana 3.
  • Criteria1:="*Post*" la Filtru valorile care conțin "Post".
  • Acum urmați al treilea pas de la primul exemplu pentru a deschide fereastra Caseta de dialog Macros.
  • Selectați specificat Numele macroului și apăsați Run .

Apoi veți obține rezultatul dorit.

Citește mai mult: Cum să adăugați un filtru în Excel (4 metode)

7. Încorporați Excel VBA pentru a copia datele filtrate într-o foaie nouă în Excel

Vedeți că există câteva date filtrate în setul meu de date. Acum le voi copia într-o foaie nouă folosind VBA . Aceste coduri nu vor funcționa în mod corespunzător în foaie, va trebui să le aplicați în modul.

Pași:

  • Apăsați Alt+F11 pentru a deschide fereastra VBA

  • Apoi faceți clic pe Inserare> Modul la deschideți un modul .

  • Acum scrie următoarele coduri -
 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 
  • Apoi, minimizați VBA

Defalcarea codului

  • Aici, am creat un Sub procedură, Copy_Filtered_Data_NewSheet() .
  • După ce a declarat două variabile declarate - x Rng Ca interval și xWS Ca foaie de lucru.
  • Apoi a folosit un Instrucțiunea IF pentru a verifica Filtrat
  • Mai târziu, a folosit MsgBox pentru a afișa rezultatul.
  • Apoi a folosit Foi de lucru("Copiere date filtrate").AutoFilter.Range pentru a selecta Filtrat gama și utilizate Adăugați pentru a adăuga o nouă foaie.
  • În cele din urmă, Copiați Range("G4") va copia Filtrat date la foaie nouă .
  • Mai târziu, urmați al treilea pas de la primul exemplu pentru a deschide fereastra Caseta de dialog Macros .
  • Apoi selectați specificat Numele macroului și apăsați Run .

Acum vedeți că Excel a deschis o foaie nouă și a copiat rândurile filtrate.

Citește mai mult: Comenzi rapide pentru filtrul Excel (3 utilizări rapide cu exemple)

8. Aplicați codul VBA pentru a filtra datele folosind lista derulantă

În ultimul nostru exemplu, vom crea mai întâi o listă derulantă pentru genuri, apoi o vom utiliza pentru a filtra datele. Pentru aceasta, am plasat criteriul de gen într-o altă locație și vom crea o listă derulantă în Celula D14 .

Pași:

  • Selectați Celula D14 .
  • Apoi click după cum urmează: Date> Instrumente de date> Validarea datelor> Validarea datelor.

La scurt timp după aceea, un caseta de dialog se va deschide.

Selectați lista de la Permiteți picătură în jos .

Apoi faceți clic pe pictograma Deschidere de la Cutia cu surse .

Acum selectați intervalul de criterii și apăsați butonul Enter .

  • În acest moment, doar apăsați OK .

Acum, noi drop-down lista este gata.

  • Acum Urmați primii doi pași a primul exemplu pentru a deschide fereastra Fereastra VBA .
  • Apoi scrie următoarele coduri în ea...
 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 If End Sub 
  • Apoi reduceți la minimum fereastra VBA .

Defalcarea codului

  • Aici, am creat un Private Sub procedură, Worksheet_Change(ByVal Target As Range).
  • Apoi, am selectat Fișa de lucru de la General și Schimbare de la Declarații .
  • Apoi setați Adresa pentru a cunoaște locația.
  • În cele din urmă, în cadrul IF a folosit declarația AutoFilter metoda cu Domeniul și Criterii
  • Acum doar... selectați criteriile din lista derulantă și Filtrul va fi activat .

Aici este Filtrat ieșire după selectarea Masculin de la drop-down .

Citește mai mult: Cum să filtrați prin listă într-o altă foaie în Excel (2 metode)

Secțiunea practică

Veți primi o foaie de practică în fișierul Excel dat mai sus pentru a exersa modalitățile explicate.

Concluzie

Sper că procedurile descrise mai sus vor fi suficient de bune pentru a fi folosite VBA cod la Filtru Nu ezitați să puneți orice întrebare în secțiunea de comentarii și vă rog să-mi dați feedback.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.