VBA Jämför strängar - StrComp

I VBA kan du jämföra två strängar med StrComp fungera. I denna handledning lär du dig hur du använder den här funktionen med olika jämförelsemetoder.

Om du vill lära dig hur du använder VBA -liknande operatör för att jämföra inexakta matchningar, klicka här: VBA -liknande operatör.

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 StrComp -funktionen för att jämföra två strängar

De StrComp funktion tar två strängar och jämförelsemetod som argument. Det finns tre jämförelsemetoder:

  • vbBinaryCompare - jämför två strängar binärt (skiftlägeskänsligt);
  • vbTextCompare - jämför två strängar som texter (skiftlägeskänsliga);
  • vbDatabaseCompare - den här metoden är endast tillgänglig i Microsoft Access och inte i VBA.

Som standard använder funktionen den binära metoden. Om vi ​​utelämnar detta argument blir funktionen skiftlägeskänslig.

Funktionen returnerar följande resultat:

  • 0 - om strängar är lika;
  • -1 - om sträng 1 är mindre än sträng 2;
  • 1 - om sträng 1 är större än sträng 2;
  • Null - om en av strängarna är tom.

Här är exempelkoden:

123 Dim intResult Som heltalintResult = StrComp ("Dator", "Dator")

I det här exemplet vill vi kontrollera om strängar "Dator" och "Dator" är lika med standardjämförelsemetoden (binär). Resultatet av funktionen finns i intResult variabel. Som du kan se i Image är båda strängarna lika, därför är intResult har värde 0.

Bild 1. Använda StrComp -funktionen med den binära metoden i VBA

Använda StrComp -funktionen med binär och textuell metod

Du kommer nu att se skillnaden mellan att använda den binära och textuella metoden. Den binära metoden har ett binärt tal för varje tecken, så stora och små bokstäver är olika tecken i denna metod. På andra sidan betraktar textmetoden “S” och “s” som samma bokstäver. Om du vill göra funktionen okänslig måste du ställa in det tredje argumentet till vbBinaryCompare. Här är koden:

123456 Dim intResult1 som heltalDim intResult2 som heltalintResult1 = StrComp ("Dator", "CompuTer")intResult2 = StrComp ("Dator", "CompuTer", vbTextCompare)

Vi vill jämföra strängar "Dator" och "Dator", med båda metoderna.

I variabeln intResult1, får vi värdet med den binära metoden, medan intResult2 får värdet med textmetoden. Du kan se värdena för dessa två variabler:

Bild 2. Använda StrComp -funktionen med binär och textuell metod

Värdet av intResult1 är 1, vilket betyder att två strängar är olika för den binära metoden. För textmetoden är dessa två strängar lika, så värdet av intResult2 är 0.

wave wave wave wave wave