VBA Sammenlign strenger - StrComp

I VBA kan du sammenligne to strenger med StrComp funksjon. I denne opplæringen lærer du hvordan du bruker denne funksjonen med forskjellige sammenligningsmetoder.

Hvis du vil lære hvordan du bruker VBA -lignende operatør til å sammenligne unøyaktige treff, klikk her: VBA -lignende operatør.

Hvis du vil lære å bruke sammenligningsoperatorer, klikk her: VBA -sammenligningsoperatorer - ikke lik og mer

Bruke StrComp -funksjonen til å sammenligne to strenger

De StrComp funksjon tar to strenger og sammenligningsmetode som argumenter. Det er 3 sammenligningsmetoder:

  • vbBinaryCompare - sammenligner to strenger binære (store og små bokstaver);
  • vbTextCompare - sammenligner to strenger som tekster (uvesentlige);
  • vbDatabaseCompare - denne metoden er bare tilgjengelig i Microsoft Access og ikke i VBA.

Som standard bruker funksjonen den binære metoden. Hvis vi utelater dette argumentet, vil funksjonen være store og små bokstaver.

Funksjonen returnerer følgende resultater:

  • 0 - hvis strengene er like;
  • -1 - hvis streng 1 er mindre enn streng 2;
  • 1 - hvis streng 1 er større enn streng 2;
  • Null - hvis en av strengene er tom.

Her er eksempelkoden:

123 Dim intResult As IntegerintResult = StrComp ("datamaskin", "datamaskin")

I dette eksemplet vil vi kontrollere om det er strenger "Datamaskin" og "Datamaskin" er like, ved å bruke standard sammenligningsmetode (binær). Resultatet av funksjonen er i intResult variabel. Som du kan se i Image, er begge strengene like, derfor er intResult har verdi 0.

Bilde 1. Bruke StrComp -funksjonen med den binære metoden i VBA

Bruke StrComp -funksjonen med binær og tekstuell metode

Du vil nå se forskjellen mellom å bruke den binære og tekstuelle metoden. Den binære metoden har et binært tall for hvert tegn, så store og små bokstaver er forskjellige tegn i denne metoden. På den andre siden anser tekstmetoden “S” og “s” som de samme bokstavene. Hvis du vil gjøre funksjonen uvesensitiv, må du sette det tredje argumentet til vbBinaryCompare. Her er koden:

123456 Dim intResult1 som heltallDim intResult2 som heltallintResult1 = StrComp ("datamaskin", "CompuTer")intResult2 = StrComp ("datamaskin", "CompuTer", vbTextCompare)

Vi ønsker å sammenligne strenger "Datamaskin" og "Datamaskin", ved å bruke begge metodene.

I variabelen intResult1, får vi verdien med den binære metoden, mens intResult2 vil få verdien med tekstmetoden. Du kan se verdiene til disse to variablene:

Bilde 2. Bruke StrComp -funksjonen med binær og tekstmetode

Verdien av intResult1 er 1, noe som betyr at to strenger er forskjellige for den binære metoden. For den tekstmessige metoden er disse to strengene like, så verdien av intResult2 er 0.

wave wave wave wave wave