Î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 |