Operátor jako VBA

Ve VBA můžete porovnat dva řetězce pomocí Jako operátor pro kontrolu shody řetězců. V tomto kurzu se naučíte používat tento operátor s různými vzory.

Pokud se chcete dozvědět, jak porovnávat řetězce ve VBA, klikněte sem: Porovnání řetězců VBA - StrComp

Chcete -li se naučit používat srovnávací operátory, klikněte sem: Srovnávací operátory VBA - nerovná se a další

Porovnání dvou řetězců pomocí operátoru Like

Pomocí operátoru Like můžeme zkontrolovat, zda řetězec začíná konkrétním textem, obsahuje jej atd. Ve výchozím nastavení je Jako operátor porovnává znaky pomocí binární metody. To znamená, že operátor rozlišuje velká a malá písmena. Pokud chcete, aby nerozlišovala malá a velká písmena, musíte zadat Možnost Porovnat text v horní části modulu. Pomocí této metody Jako operátor považuje „S“ a „s“ za stejné znaky. V našich příkladech použijeme výchozí porovnání rozlišující malá a velká písmena.

Pokud shoda existuje, Jako operátor v důsledku toho vrátí hodnotu True nebo False, jinak.

Nejprve se podíváme na jednoduchý příklad, kde chceme zkontrolovat, zda naše řetězcová proměnná začíná pan. Chcete -li to provést, musíte na konec odpovídajícího textu vložit hvězdičku (*) (Pan*). Zde je kód:

1234567891011121314 Sub LikeDemo ()Dim strName As StringDim blnVýsledek jako booleovskýstrName = "Pan Michael James"Pokud strName jako „Pan*“ TakblnResult = TrueJinýblnResult = FalseKonec IfEnd Sub

V tomto příkladu chceme zkontrolovat, zda řetězec strName začíná s pan a v proměnné vraťte hodnotu True nebo False blnVýsledek.

Nejprve nastavíme hodnotu strName na Pane Michael James:

1 strName = "Pan Michael James"

Poté použijeme Jako operátor v příkazu If:

12345 Pokud strName jako „Pan*“ TakblnResult = TrueJinýblnResult = FalseKonec If

Jako strName začíná s pan, blnVýsledek vrací True:

Obrázek 1. Pomocí operátoru Like zkontrolujte, zda řetězec začíná určitými znaky

Použití operátoru Like s různými odpovídajícími vzory

Operátor Like může kontrolovat shodu dvou řetězců na základě různých vzorů. Zde je seznam možných odpovídajících vzorů:

Kód vzoru

Typ shody

*

Odpovídá 0 nebo více znakům

?

Odpovídá jednomu znaku

#

Odpovídá jedné číslici

[znaky]

Odpovídá jednomu znaku ze seznamu znaků

[A-Z]

Odpovídá libovolnému velkému písmenu z abecedy

[A-Za-z]

Odpovídá libovolnému znaku z abecedy

[! znaky]

Odpovídá jednomu znaku bez seznamu znaků

Nyní můžeme vidět, jak tyto vzory použít v kódu. Zde je příklad pro více vzorů:

Odpovídající jednomu znaku:

1234567 strText1 = "ABCDE"Pokud strText1 jako „AB? DE“, pakblnResult1 = PravdaJinýblnResult1 = FalseKonec If

Odpovídající jedné číslici:

1234567 strText2 = "AB7DE"Pokud strText2 jako „AB#DE“, pakblnResult2 = PravdaJinýblnResult2 = FalseKonec If

Odpovídající libovolnému velkému písmenu z abecedy:

1234567 strText3 = "ABCDE"Pokud strText3 jako „AB [A-Z] DE“, pakblnResult3 = PravdaJinýblnResult3 = FalseKonec If

Neodpovídá žádnému velkému písmenu z abecedy:

1234567 strText4 = "AB7DE"Pokud strText4 jako „AB [! A-Z] DE“ PakblnResult4 = PravdaJinýblnResult4 = FalseKonec If

Odpovídající libovolný znak z abecedy (velká nebo malá):

1234567 strText5 = "ABcDE"Pokud strText5 jako „AB [A-Za-z] DE“ PakblnResult5 = PravdaJinýblnResult5 = FalseKonec If

Když spustíte kód, uvidíte, že Jako operátor vrací True in blnVýsledek proměnné pro každé srovnání:

Obrázek 2. Použití operátoru Like s různými shodnými vzory

wave wave wave wave wave