VBA som operatör

I VBA kan du jämföra två strängar med Tycka om operatör för att kontrollera matchning av strängarna. I denna handledning lär du dig hur du använder den här operatören med olika mönster.

Om du vill lära dig att jämföra strängar i VBA, klicka här: VBA Jämför strängar - StrComp

Om du vill lära dig hur du använder jämförelseoperatorer, klicka här: VBA -jämförelseoperatörer - inte lika med & mer

Använda liknande operatör för att jämföra två strängar

Med Like -operatören kan vi kontrollera om en sträng börjar med en specifik text, inkluderar den etc. Som standard är Tycka om operatören jämför tecken med den binära metoden. Det betyder att operatören är skiftlägeskänslig. Om du vill göra det skiftlägeskänsligt måste du uttrycka det Alternativ Jämför text högst upp i din modul. Med denna metod kan Tycka om operatören anser "S" och "s" samma tecken. I våra exempel kommer vi att använda standard, skiftlägeskänslig jämförelse.

Om matchningen finns, kommer Tycka om operator returnerar True som ett resultat, eller False på annat sätt.

Först ska vi titta på det enkla exemplet där vi vill kontrollera om vår strängvariabel börjar med herr. För att göra detta måste du sätta en asterisk (*) i slutet av matchande text (Herr*). Här är koden:

1234567891011121314 Sub LikeDemo ()Dim strName Som strängDim blnResult As BooleanstrName = "Mr. Michael James"Om strName Gilla "Mr*" DåblnResult = SantAnnanblnResult = FalsktAvsluta omAvsluta Sub

I det här exemplet vill vi kontrollera om string strName börjar med herr och returnera True eller False i variabeln blnResult.

Först sätter vi värdet på strName till Herr Michael James:

1 strName = "Mr. Michael James"

Sedan använder vi Tycka om operatör i if -satsen:

12345 Om strName Gilla "Mr*" DåblnResult = SantAnnanblnResult = FalsktAvsluta om

Som den strName börjar med herr, blnResult returnerar True:

Bild 1. Använd gilla -operatorn för att kontrollera om strängen börjar med vissa tecken

Använda liknande operatör med olika matchande mönster

Lika -operatören kan kontrollera matchning av två strängar baserat på olika mönster. Här är listan över möjliga matchande mönster:

Mönsterkod

Typ av matchning

*

Matchar 0 eller fler tecken

?

Matchar ett enda tecken

#

Matchar en enda siffra

[tecken]

Matchar ett enda tecken från en char -lista

[A-Ö]

Matchar alla stora tecken i alfabetet

[A-Za-z]

Matchar alla tecken från alfabetet

[! tecken]

Matchar ett enda tecken exklusive en char -lista

Nu kan vi se hur vi använder dessa mönster i koden. Här är exemplet på flera mönster:

Matcha ett enda tecken:

1234567 strText1 = "ABCDE"Om strText1 gillar "AB? DE" DåblnResult1 = SantAnnanblnResult1 = FalsktAvsluta om

Matcha en enda siffra:

1234567 strText2 = "AB7DE"Om strText2 gillar "AB#DE" DåblnResult2 = SantAnnanblnResult2 = FalsktAvsluta om

Matcha alla stora bokstäver från alfabetet:

1234567 strText3 = "ABCDE"Om strText3 gillar "AB [A-Z] DE" DåblnResult3 = SantAnnanblnResult3 = FalsktAvsluta om

Matchar inte några stora tecken från alfabetet:

1234567 strText4 = "AB7DE"Om strText4 gillar "AB [! A-Z] DE" DåblnResult4 = SantAnnanblnResult4 = FalsktAvsluta om

Matcha alla tecken från alfabetet (versaler eller gemener):

1234567 strText5 = "ABcDE"Om strText5 gillar "AB [A-Za-z] DE" DåblnResult5 = SantAnnanblnResult5 = FalsktAvsluta om

När du kör koden kan du se att Tycka om operator returnerar True in blnResult variabler för varje jämförelse:

Bild 2. Använda Like -operatorn med olika matchande mönster

wave wave wave wave wave