VBA filtrirni nizovi

The VBA funkcija filtera omogućuje brzo filtriranje polja. Prilikom filtriranja nizova potrebno je uzeti u obzir nekoliko postavki. O njima ćemo raspravljati u nastavku.

Filter - podudaranje

Prema zadanim postavkama, funkcija VBA filtra filtrirat će niz za podudaranja. U donjem primjeru filtrirat ćemo niz za podudaranja sa "Smith".

1234567891011121314 Podfilter_podudaranja ()'Definiraj nizDim strNames As VariantstrNames = Array ("Steve Smith", "Shannon Smith", "Ryan Johnson")'Niz filtaraDim strSubNames kao varijantastrSubNames = Filter (strNames, "Smith")'Broji filtrirani nizMsgBox "Pronađeno" & UBound (strSubNames) - LBound (strSubNames) + 1 & "imena".Kraj podm

Nekoliko važnih točaka:

  • Varijabla filtriranog niza treba biti deklarirana kao varijanta tipa podataka kako bi se izbjeglo definiranje veličine polja.
  • Prema zadanim postavkama, funkcija Filter razlikuje velika i mala slova. Dakle, filtriranje "kovača" dalo bi drugačiji rezultat od "Smitha". U nastavku ćemo vam pokazati kako promijeniti tu postavku.

Filter - Neosjetljivo na velika i mala slova

Prema zadanim postavkama, VBA razlikuje velika i mala slova. To znači da "kovač" nije isto što i "Smith". To vrijedi za funkciju filtra, kao i za sve (većina?) Drugih VBA funkcija ili usporedbi.

Osobno, nikada ne želim da VBA razlikuje mala i velika slova, pa uvijek dodam opciju Usporedi tekst na vrh svih svojih modula koda. Opcija Usporedi tekst govori VBA -u da zanemaruje velika i mala slova tako da ne razlikuje velika i mala slova:

1 Opcija Usporedi tekst

Dodavanjem opcije Usporedi tekst na vrh vašeg modula učinit će se velika i mala slova funkcije filtra. Alternativno, možete reći samoj funkciji filtra da ne razlikuje velika i mala slova pomoću argumenta vbTextCompare:

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

Potpuni primjer:

1234567891011121314 Podfilter_MatchCase ()'Definiraj nizDim strNames As VariantstrNames = Array ("Steve Smith", "Shannon Smith", "Ryan Johnson")'Niz filtaraDim strSubNames kao varijantastrSubNames = Filter (strNames, "smith",, vbTextCompare)'Broji filtrirani nizMsgBox "Pronađeno" & UBound (strSubNames) - LBound (strSubNames) + 1 & "imena".Kraj podm

Filter - ne podudara se

Funkcija filtra također se može koristiti za identifikaciju stavki niza koje NEMOJ podudarajte unesene kriterije postavljanjem argumenta Include na FALSE:

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

Potpuni primjer:

1234567891011121314 Podfilter_NoMatch ()'Definiraj nizDim strNames As VariantstrNames = Array ("Steve Smith", "Shannon Smith", "Ryan Johnson")'Niz filtaraDim strSubNames kao varijantastrSubNames = Filter (strNames, "Smith", False)'Broji filtrirani nizMsgBox "Pronađeno" & UBound (strSubNames) - LBound (strSubNames) + 1 & "imena".Kraj podm

Funkcija filtera

Funkcija VBA Filter vraća podskup Array isporučenog niza nizova.

Sintaksa funkcije filtra je:

Filtriraj (Izvorni niz, Podudaranje, [Uključi], [Usporedi])

Argumenti funkcije su:

  • Izvorni niz - Izvorni niz za filtriranje
  • Podudaranje - Niz za traženje
  • [Uključi] - NEOBVEZNO TRUE (Vraća podudaranja), FALSE (Vraća elemente koji se ne podudaraju)
  • [Usporedi] - NEOBVEZNO vbBinaryCompare - binarna usporedba, vbTextCompare - usporedba teksta, vbDatabaseCompare - usporedba baze podataka

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave