In VBA kun je twee strings vergelijken met de Leuk vinden operator om de overeenstemming van de tekenreeksen te controleren. In deze zelfstudie leert u hoe u deze operator met verschillende patronen kunt gebruiken.
Als je wilt leren hoe je strings in VBA kunt vergelijken, klik dan hier: VBA Compare Strings - StrComp
Als u wilt leren hoe u vergelijkingsoperatoren kunt gebruiken, klik dan hier: VBA-vergelijkingsoperators - niet gelijk aan & meer
De Like-operator gebruiken om twee strings te vergelijken
Met de Like-operator kunnen we controleren of een tekenreeks begint met een specifieke tekst, deze bevat, enz. Standaard is de Leuk vinden operator vergelijkt tekens met behulp van de binaire methode. Dit betekent dat de operator hoofdlettergevoelig is. Als je het hoofdletterongevoelig wilt maken, moet je Optie Tekst vergelijken bovenaan je module. Met behulp van deze methode, de Leuk vinden operator beschouwt "S" en "s" als dezelfde tekens. In onze voorbeelden gebruiken we de standaard, hoofdlettergevoelige vergelijking.
Als de overeenkomst bestaat, is de Leuk vinden operator retourneert True als resultaat, of False anders.
Eerst zullen we kijken naar het eenvoudige voorbeeld waarin we willen controleren of onze stringvariabele begint met Dhr. Om dit te doen, moet u een asterisk (*) plaatsen aan het einde van de overeenkomende tekst (Dhr*). Hier is de code:
1234567891011121314 | Sub LikeDemo()Dim strName As StringDim blnResultaat als BooleaansstrName = "Meneer Michael James"Als strName Like "Mr*" DanblnResult = WaarAndersblnResult = OnwaarStop alsEinde sub |
In dit voorbeeld willen we controleren of string strNaam begint met Dhr en retourneer True of False in de variabele blnResultaat.
Eerst stellen we de waarde van strNaam tot De heer Michael James:
1 | strName = "Meneer Michael James" |
Dan gebruiken we de Leuk vinden operator in de If-instructie:
12345 | Als strName Like "Mr*" DanblnResult = WaarAndersblnResult = OnwaarStop als |
als de strNaam begint met Dhr, de blnResultaat geeft waar terug:
Afbeelding 1. De Like-operator gebruiken om te controleren of de tekenreeks met bepaalde tekens begint
De Like-operator gebruiken met verschillende overeenkomende patronen
De Like-operator kan de overeenkomst van twee strings controleren op basis van verschillende patronen. Hier is de lijst met mogelijke overeenkomende patronen:
Patrooncode |
Type overeenkomst |
* | Komt overeen met 0 of meer tekens |
? | Komt overeen met een enkel teken |
# | Komt overeen met één cijfer |
[tekens] | Komt overeen met een enkel teken uit een tekenlijst |
[A-Z] | Komt overeen met elk hoofdletter uit het alfabet |
[A-Za-z] | Komt overeen met elk teken uit het alfabet |
[!tekens] | Komt overeen met een enkel teken met uitzondering van een tekenlijst |
Nu kunnen we zien hoe we deze patronen in de code kunnen gebruiken. Hier is het voorbeeld voor meerdere patronen:
Overeenkomen met een enkel teken:
1234567 | strText1 = "ABCDE"Als strText1 Zoals "AB?DE" DanblnResult1 = WaarAndersblnResult1 = OnwaarStop als |
Overeenkomen met een enkel cijfer:
1234567 | strText2 = "AB7DE"Als strText2 Like "AB#DE" DanblnResult2 = WaarAndersblnResult2 = OnwaarStop als |
Overeenkomen met een hoofdletter uit het alfabet:
1234567 | strText3 = "ABCDE"Als strText3 Like "AB[A-Z]DE" DanblnResult3 = WaarAndersblnResult3 = OnwaarStop als |
Komt niet overeen met hoofdletters uit het alfabet:
1234567 | strText4 = "AB7DE"Als strText4 Like "AB[!A-Z]DE" DanblnResult4 = WaarAndersblnResult4 = OnwaarStop als |
Overeenkomen met een willekeurig teken uit het alfabet (hoofdletters of kleine letters):
1234567 | strText5 = "ABcDE"Als strText5 Like "AB[A-Za-z]DE" DanblnResult5 = WaarAndersblnResult5 = OnwaarStop als |
Wanneer u de code uitvoert, kunt u zien dat de Leuk vinden operator retourneert True in blnResultaat variabelen voor elke vergelijking:
Afbeelding 2. De Like-operator gebruiken met verschillende overeenkomende patronen