VBA Strings vergelijken - StrComp

In VBA kun je twee strings vergelijken met de StrComp functie. In deze zelfstudie leert u hoe u deze functie kunt gebruiken met verschillende vergelijkingsmethoden.

Als u wilt leren hoe u de VBA-achtige operator kunt gebruiken om onnauwkeurige overeenkomsten te vergelijken, klik dan hier: VBA-achtige operator.

Als u wilt leren hoe u vergelijkingsoperatoren kunt gebruiken, klik dan hier: VBA-vergelijkingsoperators - niet gelijk aan & meer

De StrComp-functie gebruiken om twee strings te vergelijken

De StrComp functie heeft twee strings en een vergelijkingsmethode als argumenten. Er zijn 3 manieren om te vergelijken:

  • vbBinairVergelijken - vergelijkt twee strings binair (hoofdlettergevoelig);
  • vbTekstVergelijken - vergelijkt twee strings als teksten (hoofdletterongevoelig);
  • vbDatabaseVergelijken - deze methode is alleen beschikbaar in Microsoft Access en niet in VBA.

Standaard gebruikt de functie de binaire methode. Als we dit argument weglaten, is de functie hoofdlettergevoelig.

De functie retourneert de volgende resultaten:

  • 0 - als strings gelijk zijn;
  • -1 - als string 1 kleiner is dan string 2;
  • 1 - als string 1 groter is dan string 2;
  • Null - als een van de tekenreeksen leeg is.

Hier is de voorbeeldcode:

123 Dim intResult als geheel getalintResult = StrComp("Computer", "Computer")

In dit voorbeeld willen we controleren of strings "Computer" en "Computer" gelijk zijn, met behulp van de standaardvergelijkingsmethode (binair). Het resultaat van de functie is in de intResultaat variabel. Zoals je kunt zien in Afbeelding, zijn beide strings gelijk, daarom is de intResultaat heeft waarde 0.

Afbeelding 1. De StrComp-functie gebruiken met de binaire methode in VBA

De StrComp-functie gebruiken met binaire en tekstuele methode

U ziet nu het verschil tussen het gebruik van de binaire en tekstuele methode. De binaire methode heeft een binair getal voor elk teken, dus de hoofdletters en kleine letters zijn verschillende tekens in deze methode. Aan de andere kant beschouwt de tekstuele methode "S" en "s" als dezelfde letters. Als u de functie hoofdletterongevoelig wilt maken, moet u het derde argument instellen op vbBinairVergelijken. Hier is de code:

123456 Dim intResult1 als geheel getalDim intResult2 als geheel getalintResult1 = StrComp("Computer", "CompuTer")intResult2 = StrComp("Computer", "CompuTer", vbTextCompare)

We willen strings vergelijken "Computer" en "Computer", beide methoden gebruiken.

In de variabele intResult1, krijgen we de waarde met de binaire methode, terwijl de intResult2 krijgt de waarde met de tekstuele methode. U kunt de waarden van deze twee variabelen zien:

Afbeelding 2. De StrComp-functie gebruiken met binaire en tekstuele methode

De waarde van intResult1 is 1, wat betekent dat twee strings verschillend zijn voor de binaire methode. Voor de tekstuele methode zijn deze twee strings gelijk, dus de waarde van intResult2 is 0.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave