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