Symbole wieloznaczne VBA

Ten samouczek pokaże, jak używać symboli wieloznacznych w VBA.

Symbole wieloznaczne są używane we wszystkich językach programowania i aplikacjach bazodanowych, takich jak SQL Server. Symbol wieloznaczny można zdefiniować jako symbol używany do zastąpienia jednego lub większej liczby znaków w ciągu tekstowym. Na przykład ten ciąg tekstowy - "mo*" - znajdzie słowa mama, mysz, łoś, mamusia itp.; podczas gdy ten ciąg tekstowy „mo?” czy znajdzie tylko słowo mama jako symbol wieloznaczny? zastępuje tylko jeden znak.

Używamy symboli wieloznacznych z operatorem Like, który jest łatwiejszą alternatywą dla VBA Regex.

Używanie Asterix (*) Wildcard w VBA

Symbol wieloznaczny Asterix zastępuje jeden lub więcej znaków w ciągu VBA.

Spójrzmy na następujący zakres komórek w Excelu:

Używając symbolu wieloznacznego Asterix w naszym kodzie VBA, możemy znaleźć wszystkie imiona zaczynające się na „M” i zmienić kolor tekstu na czerwony.

12345678 Sub CheckForM()Dim x As IntegerDla x = 3 do 8Jeśli zakres("B" i x).Wartość jak "M*" WtedyZakres("B" & x). Kolor czcionki = vbRedZakończ, jeśliNastępny xNapis końcowy

Dlatego przeszukaliśmy zakres i znaleźliśmy wszystkie imiona zaczynające się na literę M, ponieważ nasz ciąg znaków wieloznacznych to „M*

Wynik uruchomienia powyższego kodu pokazano poniżej.

Gdybyśmy mieli użyć ciągu znaków wieloznacznych „Ma*” - zmieniłyby się tylko imiona w B3 i B4.

Używanie znaku zapytania (?) Wildcard w VBA

Znak zapytania zastąpi pojedynczy znak w ciągu VBA.

Rozważ następujące dane:

Możemy użyć ciągu znaków wieloznacznych „?im”, aby znaleźć imiona kończące się na „im”

12345678 Sub CheckForIM()Dim x As IntegerDla x = 3 do 8If Range("B" & x).Value Like "?im" ThenZakres("B" & x). Kolor czcionki = vbRedZakończ, jeśliNastępny xNapis końcowy

Wynik uruchomienia tego kodu jest pokazany poniżej:

Używanie [listy znaków] jako symbolu wieloznacznego

Powyższy przykład można nieco zmodyfikować, aby umożliwić nam użycie znaku zapytania, oprócz listy dozwolonych znaków. Ciąg znaków wieloznacznych można zatem zmienić na „?[e-i]m”, gdzie pierwszy znak może być dowolnym, drugim znakiem musi być znak między e i i, a ostatnią literą musi być znak „m”. Dozwolone są tylko 3 znaki.

12345678 Test podrzędnej listyznaków()Dim x As IntegerDla x = 3 do 8If Range("B" & x).Value Like "?[e-i]m" ThenZakres("B" & x). Kolor czcionki = vbRedZakończ, jeśliNastępny xNapis końcowy

Wynik tego kodu byłby następujący:

Programowanie VBA | Generator kodu działa dla Ciebie!

Używanie skrótu (#) Wildcard w VBA

Symbol wieloznaczny skrótu (#) zastępuje pojedynczą cyfrę w ciągu VBA. Możemy dopasować od 0 do 9.

12345678910 Sub SprawdźNumer()Dim x jako liczba całkowita, y jako liczba całkowitaDla x = 3 do 8Dla y = 2 do 5Jeśli ActiveSheet.Cells(x, y) Jak "##" WtedyActiveSheet.Cells(x, y).Czcionka.Kolor = vbRedZakończ, jeśliNastępny takNastępny xNapis końcowy

Powyższy kod przejdzie przez wszystkie komórki w zakresie („B3:E8”) i zmieni kolor tekstu w komórce na CZERWONY, jeśli w tej komórce zostanie znaleziona liczba dwucyfrowa.

W poniższym przykładzie kod zmieni numer tylko wtedy, gdy ostatnią cyfrą jest 9.

12345678910 Sub SprawdźDla9()Dim x jako liczba całkowita, y jako liczba całkowitaDla x = 3 do 8Dla y = 2 do 5Jeśli ActiveSheet.Cells(x, y) Jak „#9” WtedyActiveSheet.Cells(x, y).Czcionka.Kolor = vbRedZakończ, jeśliNastępny takNastępny xNapis końcowy

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

wave wave wave wave wave