VBA - liigendtabeli filter

See õpetus näitab, kuidas VBA -s liigendtabeli filtrit kasutada.

Pivot -tabelid on Exceli erakordselt võimas andmetööriist. Pivot -tabelid võimaldavad meil analüüsida ja tõlgendada suuri andmemahtusid, rühmitades ja koondades välju ja ridu. Pöördtabelitele saame rakendada filtreid, et saaksime kiiresti näha meile olulisi andmeid.

Esiteks peame looma oma andmete jaoks Pivot -tabeli. (Meie VBA pöördetabeli juhendi saamiseks klõpsake siin).

Lahtri väärtuse põhjal filtri loomine

Pivot -tabelis saate filtreerida VBA -d, kasutades lahtri väärtuses sisalduvaid andmeid - saame filtreerida kas väljal Lehekülg või rida (näiteks ülaltoodud väljal Tarnija või veerul Reasildid asuv väli Oper). ).

Pivot -tabelist paremal asuvas tühjas lahtris looge lahter filtri hoidmiseks ja tippige seejärel andmed lahtrisse, milles soovite Pivot -tabelit filtreerida.

Looge järgmine VBA makro:

1234567 AlamfilterPageValue ()Dim pvFld PivotFieldDim strFilter stringinaMäära pvFld = ActiveSheet.PivotTables ("PivotTable1"). PivotFields ("tarnija")strFilter = ActiveWorkbook.Sheets ("Sheet1"). Vahemik ("M4"). VäärtuspvFld.CurrentPage = strFilterEnd Sub

Filtri rakendamiseks käivitage makro.

Filtri tühjendamiseks looge järgmine makro:

12345 Alam ClearFilter ()Dim pTbl PivotTable -liigendtabelinaMäära pTbl = ActiveSheet.PivotTables ("PivotTable1")pTbl.ClearAllFiltersEnd Sub

Seejärel eemaldatakse filter.

Seejärel saame muuta filtreerimiskriteeriume, et filtreerida Pivot -tabeli reale, mitte praegusele lehele.

Järgmise makro sisestamine võimaldab meil filtreerida real (pange tähele, et filtreeritav pöördväli on nüüd pigem operaator kui tarnija).

1234567 AlamfilterRowValue ()Dim pvFld PivotFieldDim strFilter stringinaMäära pvFld = ActiveSheet.PivotTables ("PivotTable1"). PivotFields ("Oper")strFilter = ActiveWorkbook.Sheets ("Sheet1"). Vahemik ("M4"). VäärtuspvFld.PivotFilters.Add2 xlCaptionEquals,, strFilterEnd Sub

Filtri rakendamiseks käivitage makro.

Pivot -filtris mitme kriteeriumi kasutamine

Ülaltoodud rea väärtuse filtrile saame lisada täiendavaid kriteeriume.

Kuid kuna tavaline filter varjab mittevajalikke ridu, peame kriteeriumid läbi vaatama ja esitama nõutavad, kuid mittevajalikud. Seda tehakse, luues muutuja Array ja kasutades koodis paar silmust.

1234567891011121314151617181920212223 AlamfilterMultipleRowItems ()Dim vArray kui variantDim i täisarvuna, j täisarvunaDim pvFld PivotFieldMäära pvFld = ActiveSheet.PivotTables ("PivotTable1"). PivotFields ("Oper")vArray = vahemik ("M4: M5")pvFld.ClearAllFiltersKoos pvFld -igaI = 1 jaoks pvFld.PivotItems.Countj = 1Tehke samas j <= UBound (vArray, 1) - LBound (vArray, 1) + 1Kui pvFld.PivotItems (i). Nimi = vArray (j, 1) SiispvFld.PivotItems (pvFld.PivotItems (i) .Nimi) .Visible = TrueVälju DoMuidupvFld.PivotItems (pvFld.PivotItems (i) .Nimi) .Visible = valeLõpp Kuij = j + 1LoopEdasi iLõpetaEnd Sub

Muutuja põhjal filtri loomine

Saame kasutada samu mõisteid filtrite loomiseks, mis põhinevad meie koodi muutujatel, mitte lahtri väärtusel. Seekord on filtrimuutuja (strFilter) täidetud koodis endas (nt: Makrosse kõvakodeeritud).

1234567 AlamfilterTextValue ()Dim pvFld PivotFieldDim strFilter stringinaMäära pvFld = ActiveSheet.PivotTables ("PivotTable1"). PivotFields ("tarnija")strFilter = "THOMAS S"pvFld.CurrentPage = strFilterEnd Sub
wave wave wave wave wave