Polia filtra VBA

The Funkcia filtra VBA umožňuje rýchlo filtrovať polia. Pri filtrácii polí je potrebné zvážiť niekoľko nastavení. Budeme o nich diskutovať nižšie.

Filter - zápas

V predvolenom nastavení bude funkcia filtra VBA filtrovať pole na zhody. V nižšie uvedenom príklade budeme filtrovať pole na zhody s „Smith“.

1234567891011121314 Sub Filter_Match ()„Definujte poleDim strNames As VariantstrNames = Pole („Steve Smith“, „Shannon Smith“, „Ryan Johnson“)„Pole filtraDim strSubNames ako variantstrSubNames = Filter (strNames, "Smith")„Gróf filtrované poleMsgBox „Nájdené“ a UBound (strSubNames) - LBound (strSubNames) + 1 & „mená“.Koniec pod

Niekoľko dôležitých bodov:

  • Filtrovaná premenná poľa by mala byť deklarovaná ako variant dátového typu, aby sa zabránilo definovaniu veľkosti poľa.
  • V predvolenom nastavení funkcia filtra rozlišuje veľké a malé písmena. Filtrovanie na „kováčovi“ by teda prinieslo iný výsledok ako na „Smithovom“. Nižšie vám ukážeme, ako zmeniť toto nastavenie.

Filter - nerozlišuje malé a veľké písmená

VBA štandardne rozlišuje veľké a malé písmena. To znamená, že „kováč“ sa nerovná „kováča“. Platí to o funkcii filtra, ako aj o všetkých (väčšine?) Ostatných funkciách alebo porovnaniach VBA.

Osobne nikdy nechcem, aby VBA rozlišoval veľké a malé písmena, takže vždy na začiatok všetkých svojich kódových modulov pridám text na porovnanie možností. Možnosť Porovnať text hovorí VBA, aby ignorovala veľké a malé písmená, takže nerozlišuje malé a veľké písmená:

1 Možnosť Porovnať text

Ak do hornej časti modulu pridáte text na porovnanie možností, funkcia filtra nebude rozlišovať veľké a malé písmena. Alternatívne môžete povedať, že samotná funkcia filtra nerozlišuje malé a veľké písmena pomocou argumentu vbTextCompare:

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

Úplný príklad:

1234567891011121314 Podfilter_MatchCase ()„Definujte poleDim strNames As VariantstrNames = Pole („Steve Smith“, „Shannon Smith“, „Ryan Johnson“)„Pole filtraDim strSubNames ako variantstrSubNames = Filter (strNames, "smith",, vbTextCompare)„Gróf filtrované poleMsgBox „Nájdené“ a UBound (strSubNames) - LBound (strSubNames) + 1 & „mená“.Koniec pod

Filter - nezhoduje sa

Funkciu filtra je možné použiť aj na identifikáciu položiek poľa, ktoré NEROBTE zodpovedať zadaným kritériám nastavením argumentu Zahrnúť na NEPRAVDU:

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

Úplný príklad:

1234567891011121314 Podfilter_NoMatch ()„Definujte poleDim strNames As VariantstrNames = Pole („Steve Smith“, „Shannon Smith“, „Ryan Johnson“)„Pole filtraDim strSubNames ako variantstrSubNames = Filter (strNames, "Smith", False)„Gróf filtrované poleMsgBox „Nájdené“ a UBound (strSubNames) - LBound (strSubNames) + 1 & „mená“.Koniec pod

Funkcia filtra

Funkcia filtra VBA vracia podmnožinu poľa dodaného poľa reťazcov.

Syntax funkcie filtra je:

Filter (SourceArray, Match, [Include], [Compare])

Argumenty funkcie sú:

  • SourceArray - Pôvodné pole na filtrovanie
  • Zápas - Reťazec, ktorý sa má vyhľadať
  • [Zahrnúť] - VOLITEĽNÉ TRUE (vráti zhody), FALSE (vráti prvky, ktoré sa nezhodujú)
  • [Porovnať] - VOLITEĽNÉ vbBinaryCompare - binárne porovnanie, vbTextCompare - porovnanie textu, vbDatabaseCompare - porovnanie databázy

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave