Tablice filtrów VBA

ten Funkcja filtra VBA pozwala szybko filtrować tablice. Podczas filtrowania tablic należy wziąć pod uwagę kilka ustawień. Omówimy je poniżej.

Filtruj - Dopasuj

Domyślnie funkcja filtrowania VBA filtruje tablicę pod kątem dopasowań. W poniższym przykładzie przefiltrujemy tablicę pod kątem dopasowań z „Smith”.

1234567891011121314 Pod filtr_Match()'Zdefiniuj szykDim strNames As VariantstrNames = Array("Steve Smith", "Shannon Smith", "Ryan Johnson")„Filtruj tablicę”Dim strSubNames As VariantstrSubNames = Filter(strNames, "Kowalski")'Liczba filtrowanej tablicyMsgBox "Found " & UBound(strSubNames) - LBound(strSubNames) + 1 & " names."Napis końcowy

Kilka ważnych punktów:

  • Filtrowaną zmienną tablicową należy zadeklarować jako wariant typu danych, aby uniknąć definiowania rozmiaru tablicy.
  • Domyślnie funkcja Filtr rozróżnia wielkość liter. Zatem filtrowanie według „kowala” dałoby inny wynik niż „Kowalski”. Poniżej pokażemy, jak zmienić to ustawienie.

Filtr - bez uwzględniania wielkości liter

Domyślnie VBA rozróżnia wielkość liter. Oznacza to, że „smith” nie równa się „Smith”. Dotyczy to funkcji filtrowania, a także wszystkich (większości?) innych funkcji VBA lub porównań.

Osobiście nigdy nie chcę, aby VBA rozróżniał wielkość liter, więc zawsze dodaję Option Compare Text na górze wszystkich moich modułów kodu. Opcja Porównaj tekst mówi VBA, aby ignorował wielkość liter, aby nie uwzględniał wielkości liter:

1 Opcja Porównaj tekst

Dodanie Option Compare Text na górze modułu sprawi, że funkcja filtrowania będzie niewrażliwa na wielkość liter. Alternatywnie możesz powiedzieć samej funkcji filtru, aby nie uwzględniała wielkości liter za pomocą argumentu vbTextCompare:

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

Pełny przykład:

1234567891011121314 Filtr pomocniczy_Przypadek dopasowania()'Zdefiniuj szykDim strNames As VariantstrNames = Array("Steve Smith", "Shannon Smith", "Ryan Johnson")„Filtruj tablicę”Dim strSubNames As VariantstrSubNames = Filter(strNames, "kowalski", , vbTextCompare)'Liczba filtrowanej tablicyMsgBox "Found " & UBound(strSubNames) - LBound(strSubNames) + 1 & " names."Napis końcowy

Filtr - Nie pasuje

Funkcja filtrowania może być również używana do identyfikowania elementów tablicy, które: NIE RÓB dopasuj wprowadzone kryteria, ustawiając argument Uwzględnij na FAŁSZ:

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

Pełny przykład:

1234567891011121314 Filtr pomocniczy_NoMatch()'Zdefiniuj szykDim strNames As VariantstrNames = Array("Steve Smith", "Shannon Smith", "Ryan Johnson")„Filtruj tablicę”Dim strSubNames As VariantstrSubNames = Filter(strNames, "Kowalski", False)'Liczba filtrowanej tablicyMsgBox "Found " & UBound(strSubNames) - LBound(strSubNames) + 1 & " names."Napis końcowy

Funkcja filtra

Funkcja VBA Filter zwraca podzbiór Array dostarczonej tablicy ciągów.

Składnia funkcji filtrowania to:

Filter( SourceArray, Match, [Uwzględnij], [Porównaj] )

Argumentami funkcji są:

  • SourceArray -Oryginalna tablica do filtrowania
  • Mecz - Ciąg do wyszukania
  • [Włączać] - OPCJONALNY TRUE (zwraca dopasowania), FALSE (zwraca elementy, które nie pasują)
  • [Porównywać] - OPCJONALNY vbBinaryCompare - porównanie binarne, vbTextCompare - porównanie tekstowe, vbDatabaseCompare - porównanie bazy danych

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave