VBA szűrőtömbök

Az VBA szűrő funkció lehetővé teszi a tömbök gyors szűrését. A tömbök szűrésekor több beállítást is figyelembe kell venni. Az alábbiakban ezeket tárgyaljuk.

Szűrő - egyezés

Alapértelmezés szerint a VBA szűrő funkció egy tömböt szűr egyezésre. Az alábbi példában szűrjük a tömböt a „Smith” egyezésekkel.

1234567891011121314 Sub Filter_Match ()'Definiálja a tömbötDim strNames VariantstrNames = Tömb ("Steve Smith", "Shannon Smith", "Ryan Johnson")'SzűrőtömbDim strSubNames VariantstrSubNames = Szűrő (strNames, "Smith")- Gróf szűrt tömbMsgBox "Found" & UBound (strSubNames) - LBound (strSubNames) + 1 & "names".End Sub

Pár fontos pont:

  • A szűrt tömbváltozót adattípus -változatként kell deklarálni, hogy elkerüljük a tömb méretének meghatározását.
  • A Szűrő funkció alapértelmezés szerint megkülönbözteti a kis- és nagybetűket. Tehát a „kovács” szűrése más eredményt adna, mint a „Smith”. Az alábbiakban bemutatjuk, hogyan módosíthatja ezt a beállítást.

Szűrő - a kis- és nagybetűk nem érzékenyek

Alapértelmezés szerint a VBA kis- és nagybetűket érzékeny. Ez azt jelenti, hogy a „kovács” nem egyenlő a „smittel”. Ez igaz a szűrőfunkcióra, valamint az összes (legtöbb?) Egyéb VBA funkcióra vagy összehasonlításra.

Személy szerint soha nem szeretném, ha a VBA kis- és nagybetűket megkülönböztetne, ezért mindig hozzáadom az Option Compare Text lehetőséget az összes kódmodulom tetejére. A Szöveg összehasonlítása lehetőség arra utasítja a VBA -t, hogy figyelmen kívül hagyja a kis- és nagybetűket, így a kis- és nagybetűk nem érzékenyek:

1 Opció Szöveg összehasonlítása

Ha hozzáadja a Lehetőségek összehasonlítása szöveget a modul tetejéhez, a szűrőfunkció megkülönbözteti a kis- és nagybetűket. A vbTextCompare argumentummal azt is megmondhatja, hogy maga a szűrőfunkció nem különbözteti meg a kis- és nagybetűket.

1 strSubNames = Szűrő (strNames, "smith",, vbTextCompare)

Teljes példa:

1234567891011121314 Sub Filter_MatchCase ()'Definiálja a tömbötDim strNames VariantstrNames = Tömb ("Steve Smith", "Shannon Smith", "Ryan Johnson")'SzűrőtömbDim strSubNames VariantstrSubNames = Szűrő (strNames, "smith",, vbTextCompare)- Gróf szűrt tömbMsgBox "Found" & UBound (strSubNames) - LBound (strSubNames) + 1 & "names".End Sub

Szűrő - nem egyezik

A szűrőfunkció arra is használható, hogy azonosítsa a tömb elemeit NE feleljen meg a megadott feltételeknek az Include argumentum FALSE értékre állításával:

1 strSubNames = Szűrő (strNames, "Smith", False)

Teljes példa:

1234567891011121314 Sub Filter_NoMatch ()'Definiálja a tömbötDim strNames VariantstrNames = Tömb ("Steve Smith", "Shannon Smith", "Ryan Johnson")'SzűrőtömbDim strSubNames VariantstrSubNames = Szűrő (strNames, "Smith", False)- Gróf szűrt tömbMsgBox "Found" & UBound (strSubNames) - LBound (strSubNames) + 1 & "names".End Sub

Szűrő funkció

A VBA szűrő függvény a mellékelt karakterlánc tömb tömb részhalmazát adja vissza.

A szűrőfunkció szintaxisa a következő:

Szűrés (SourceArray, Match, [Include], [Compare])

A függvény argumentumai a következők:

  • SourceArray - Az eredeti tömb szűrni
  • mérkőzés - A keresendő karakterlánc
  • [Belefoglalás] - VÁLASZTHATÓ IGAZ (egyezést ad vissza), FALSE (nem egyező elemeket ad vissza)
  • [Összehasonlítás] - VÁLASZTHATÓ vbBinaryCompare - bináris összehasonlítás, vbTextCompare - szöveges összehasonlítás, vbDatabaseCompare - adatbázis -összehasonlítás

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave