VBA AutoFilter

În VBA, puteți crea AutoFilter pentru a filtra o gamă de celule sau un tabel Excel. În acest tutorial, veți învăța cum să creați AutoFilter pentru una sau mai multe coloane și pentru condiții multiple.

Dacă doriți să aflați cum să utilizați un filtru avansat în VBA, faceți clic aici: Filtru avansat VBA

Crearea AutoFilter în VBA

În primul rând, veți vedea cum să creați AutoFilter într-un interval, astfel încât un utilizator să poată filtra datele. Datele pe care le vom folosi în exemple sunt în imaginea 1:

Imaginea 1. Date pentru exemple de filtru automat

Iată codul de creare AutoFilter:

1 Sheet1.Range ("A1: E1"). AutoFilter

Pentru a activa AutoFilter, trebuie să specificăm antetul gamei, în cazul nostru A1: E1 și să folosim AutoFilter metoda obiectului Gamă. Ca urmare, gama noastră de date are filtre activate:

Imagine 2. AutoFilter activat pentru date

AutoFilter cu parametrii de câmp și criterii

VBA vă permite, de asemenea, să filtrați automat un anumit câmp cu anumite valori.

Pentru a face acest lucru, trebuie să utilizați parametri Camp și Criterii1 a metodei AutoFilter. În acest exemplu, dorim să filtrăm a treia coloană (Produs) pentru Produsul A numai. Iată codul:

12 Sheet1.Range ("A1: E1"). Câmpul AutoFilter: = 3, _Criteriul 1: = "Produsul A"

În Camp parametru, puteți seta numărul coloanei din interval (nu în Excel), în timp ce în Criterii1 puteți pune valoarea pe care doriți să o filtrați. După executarea codului, tabelul nostru arată astfel:

Imaginea 3. AutoFilter cu câmp și criterii

După cum puteți vedea, numai rândurile cu Produsul A în a treia coloană sunt afișate în intervalul de date.

Filtru automat cu valori de câmp și criterii multiple

Dacă doriți să filtrați un câmp cu mai multe valori, trebuie să utilizați parametrul Operator din AutoFilter metodă. Pentru a filtra mai multe valori, trebuie să setați Operator la xlFilterValues și, de asemenea, pentru a pune toate valorile Criterii într-o matrice. În acest exemplu, filtrăm Produs coloana pentru Produsul A și Produsul B. Iată exemplul de cod:

123 Sheet1.Range ("A1: E1"). Câmpul AutoFilter: = 3, _Criterii1: = matrice („Produsul A”, „Produsul B”), _Operator: = xlFilterValues

Când executăm codul, obținem doar rânduri cu Produsul A și Produsul B, după cum puteți vedea în Imaginea 4:

Imaginea 4. AutoFilter cu valori de criterii multiple

Gama de date cu filtru automat cu mai multe criterii

Dacă doriți să filtrați un câmp cu mai multe criterii, trebuie să utilizați Criterii1 și Criterii2 parametrii, dar și Operator xl Și.

În exemplul următor, vom filtra prima coloană (Data) pentru datele din decembrie 2022. Prin urmare, avem două criterii: o dată mai mare decât 12/01/18 și mai mică decât 31/12/18. Acesta este codul:

1234 Sheet1.Range ("A1: E1"). Câmpul AutoFilter: = 1, _Criterii1: = "> = 12/01/2018", _Operator: = xlAnd, _Criterii2: = "<= 31.12.2018"

Când executăm codul, puteți vedea că numai datele din decembrie sunt afișate în intervalul de date:

Imaginea 5. AutoFilter cu mai multe criterii pentru câmp

Valorile parametrilor operatorului metodei AutoFilter

În tabelul următor. puteți vedea toate valorile posibile ale Operator parametrul metodei AutoFilter și descrierile acestora:

Operator Descriere
xl Și Include mai multe criterii - Criteriile 1 și Criteriile 2
xlOu Include unul dintre criteriile multiple - Criteriile 1 sau Criteriile 2
xlTop10Items Filtrează un anumit număr de valori cele mai bine clasate (număr specificat în Criteriile1)
xlBottom10Items Filtrează un anumit număr de valori clasate mai jos (număr specificat în Criteriile1)
xlTop10Percent Filtrează un anumit procent din valorile cele mai bine clasate (% specificat în Criteriile1)
xlBottom10Percent Filtrează un anumit procent din cele mai mici valori clasate (% specificat în Criteriile1)
xlFilterValues Include mai multe valori ale criteriilor cu Array
xlFilterCellColor Filtrează celulele pentru culori
xlFilterFontColor Filtrează celulele pentru culorile fontului
xlFIlterIcon Pictograme de filtre
xlFilterDynamic Filtrează valorile dinamice

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave