VBA -suodattimet

The VBA -suodatintoiminto voit suodattaa matriisit nopeasti. Joukkoja suodatettaessa on otettava huomioon useita asetuksia. Keskustelemme niistä alla.

Suodatin - vastaa

Oletuksena VBA -suodatintoiminto suodattaa matriisin vastaavuuksia varten. Alla olevassa esimerkissä suodatamme matriisin "Smith" vastaavuuksiksi.

1234567891011121314 Sub Filter_Match ()'Määrittele taulukkoDim strNames VariantstrNames = Array ("Steve Smith", "Shannon Smith", "Ryan Johnson")'SuodatinjärjestelmäDim strSubNames as VariantstrSubNames = Suodatin (strNames, "Smith")'Laske suodatettu taulukkoMsgBox "Löytynyt" & UBound (strSubNames) - LBound (strSubNames) + 1 & "names."End Sub

Pari tärkeää kohtaa:

  • Suodatettu taulukkomuuttuja on ilmoitettava tietotyyppimuunnoksena, jotta vältetään taulukon koon määrittäminen.
  • Suodatin -toiminto erottaa oletusarvoisesti isot ja pienet kirjaimet. Joten "smith" -suodatus antaisi eri tuloksen kuin "Smith". Alla näytämme, kuinka voit muuttaa tätä asetusta.

Suodatin - kirjainkoko ei erota

Oletuksena VBA on kirjainkoko. Tämä tarkoittaa, että "seppä" ei ole sama kuin "Smith". Tämä pätee suodatintoimintoon sekä kaikkiin (useimpiin?) Muihin VBA -toimintoihin tai vertailuihin.

Henkilökohtaisesti en koskaan halua VBA: n erottavan kirjainkokoa, joten lisään aina vaihtoehtojen vertailutekstin kaikkien koodimoduulieni yläosaan. Vaihtoehto Vertaa teksti kehottaa VBA: ta jättämään huomiotta kirjaimet, jotta kirjainkoolla ei ole merkitystä:

1 Vaihtoehto Vertaa tekstiä

Vaihtoehto Vertaa tekstiä -ominaisuuden lisääminen moduulin yläosaan tekee suodatintoiminnon kirjainkokosta eron. Vaihtoehtoisesti voit kertoa, että itse suodatintoiminto ei erota kirjainkokoa vbTextCompare -argumentilla:

1 strSubNames = Suodatin (strNames, "smith",, vbTextCompare)

Täysi esimerkki:

1234567891011121314 Sub Filter_MatchCase ()'Määrittele taulukkoDim strNames VariantstrNames = Array ("Steve Smith", "Shannon Smith", "Ryan Johnson")'SuodatinjärjestelmäDim strSubNames as VariantstrSubNames = Suodatin (strNames, "smith",, vbTextCompare)'Laske suodatettu taulukkoMsgBox "Löytynyt" & UBound (strSubNames) - LBound (strSubNames) + 1 & "names."End Sub

Suodatin - ei täsmää

Suodatintoimintoa voidaan käyttää myös tunnistamaan matriisikohteita, jotka ÄLÄ vastaa syötettyjä ehtoja asettamalla Sisällytä -argumentiksi EPÄTOSI:

1 strSubNames = Suodatin (strNames, "Smith", False)

Täysi esimerkki:

1234567891011121314 Sub Filter_NoMatch ()'Määrittele taulukkoDim strNames VariantstrNames = Array ("Steve Smith", "Shannon Smith", "Ryan Johnson")'SuodatinjärjestelmäDim strSubNames as VariantstrSubNames = Suodatin (strNames, "Smith", False)'Laske suodatettu taulukkoMsgBox "Löytynyt" & UBound (strSubNames) - LBound (strSubNames) + 1 & "names."End Sub

Suodatintoiminto

VBA -suodatintoiminto palauttaa toimitetun merkkijonon taulukon alijoukon.

Suodatintoimintojen syntaksi on:

Suodatin (SourceArray, Match, [Sisällytä], [Vertaa])

Funktion argumentit ovat:

  • LähdeArray - Alkuperäinen suodatin
  • Ottelu - Haettava merkkijono
  • [Sisältää] - VALINNAINEN TRUE (palauttaa osumat), FALSE (palauttaa elementit, jotka eivät täsmää)
  • [Vertailla] - VALINNAINEN vbBinaryCompare - binäärinen vertailu, vbTextCompare - tekstin vertailu, vbDatabaseCompare - tietokantavertailu

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave