VBA StrComp - Sammenlign strenge i VBA ved hjælp af StrComp-funktion

Indholdsfortegnelse

Excel VBA StrComp-funktion

VBA StrComp er en indbygget funktion, der bruges til at sammenligne, om de to strengværdier er ens eller ikke. Resultaterne er dog ikke standard SAND eller FALSK som i regneark, men det er anderledes.

Før vi ser på resultaterne, lad mig først vise dig syntaksen for StrComp-funktionen.

  • Streng 1: Streng 1 er den første streng eller værdi, vi sammenligner.
  • Streng 2: Streng 2 er den anden streng eller værdi, vi sammenligner med streng 1 .
  • Sammenlign: Vi kan levere tre muligheder her.
      • 0 = Binær sammenligning. Dette udfører store og små bogstaver. For eksempel er "Hej" ikke lig med "HELLO", fordi begge ordene sager er forskellige. Dette er standardværdien, hvis du ignorerer denne parameter. vbBinaryCompare
      • 1 = Sammenlign tekst. Denne indstilling udfører ikke store og små bogstaver. For eksempel er "Hej" lig med "HELLO" -begivenheden, selvom begge ordsager er forskellige. vbTextCompare
      • 2 = Adgang Sammenlign. Dette udfører databasesammenligning.

Resultater af streng sammenligning (StrComp) funktion

Som jeg fortalte, når vi sammenligner to værdier i regnearket, får vi resultatet som enten SAND eller FALSK. Men med VBA-strengesammenligningsfunktionen er resultaterne ikke de samme.

  • Vi får nul (0), når streng 1 er lig med streng 2.
  • Vi får en (1), når streng 1- værdien er større end streng 2- værdien .
  • Vi får minus en (-1), når streng 1- værdi er mindre end streng 2
  • Vi får NULL når streng 1 eller streng 2 værdi er NULL.

Eksempler på brug af VBA StrComp-funktion

Eksempel nr. 1

Lad os starte med et simpelt eksempel. For eksempel sammenligner vi to værdier, dvs. "Excel VBA" og "Excel VBA."

Kode:

Sub StrComp_Example1 () Dim FirstValue As String 'To Store String 1 value Dim SecondValue As String' To Save String 2 value Dim Result As String 'To Store Result of the StrComp formula FirstValue = "Excel VBA"' Tildel streng 1-værdi SecondValue = "Excel VBA" 'Tildel streng 2-værdi Resultat = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Anvend StrComp-funktion MsgBox-resultat 'Vis resultatet i meddelelsesfeltet Afslut under

Når jeg kører denne kode, får vi nul (0) som resultat, fordi både streng 1 og streng 2- værdier er de samme.

Eksempel 2

Nu vil jeg ændre tilfældene med to ord.

Streng 1 = Excel Vba

Streng 2 = Excel VBA

Kode:

Sub StrComp_Example2 () Dim FirstValue As String 'To Store String 1 value Dim SecondValue As String' To Store String 2 value Dim Result As String 'To Save Result of the StrComp formula FirstValue = "Excel Vba"' Tildel streng 1-værdi SecondValue = "Excel VBA" 'Tildel streng 2-værdi Resultat = StrComp (FirstValue, SecondValue, vbBinaryCompare)' Anvend StrComp-funktion MsgBox-resultat 'Vis resultatet i meddelelsesfeltet Afslut under

Når jeg kører denne kode, får vi 1, for da vi leverede argumentet Sammenlign som " vbBinaryCompare", vil det kontrollere, om der er store og små bogstaver.

Nu vil jeg ændre sammenligningsindstillingen fra “ vbBinaryCompare” til “ vbTextCompare”

Kode:

Sub StrComp_Example3 () Dim FirstValue As String 'To Store String 1 value Dim SecondValue As String' To Store String 2 value Dim Result As String 'To Save Result of the StrComp formula FirstValue = "Excel Vba"' Tildel streng 1-værdi SecondValue = "Excel VBA" 'Tildel streng 2-værdi Resultat = StrComp (FirstValue, SecondValue, vbTextCompare)' Anvend StrComp-funktion MsgBox-resultat 'Vis resultatet i meddelelsesfeltet Afslut under

Med denne sammenligning får vi nul (0), fordi vbaTextCompare ignorerer store og små bogstaver.

Eksempel 3

Casestudie af VBA StrComp med IF-betingelse

Antag at du har dataene som nedenstående billede.

Vi er nødt til at sammenligne streng 1 med streng 2 og nå frem til resultatet som "nøjagtig", hvis begge er ens, ellers skal resultatet være "ikke nøjagtigt."

Koden nedenfor gør jobbet for os.

Kode:

Sub StrComp_Example4 () Dim resultat som streng Dim I som heltal for i = 2 til 6 resultat = StrComp (celler (i, 1). Værdi, celler (i, 2). Værdi) Hvis resultat = 0 derefter celler (i, 3 ) .Value = "Præcise" andre celler (i, 3) .Value = "Ikke eksakt" Afslut hvis næste jeg afslutter sub

Når jeg kører ovenstående VBA-kode i Excel, får vi nedenstående resultat.

Hvis du ser på C4-celle er streng 1 og streng 2 de samme, men tegnene er store og små bogstaver, så resultatet er "Ikke eksakt." For at løse dette problem er vi nødt til at levere Sammenlign som vbTextCompare.

Nedenfor er den modificerede kode for at få resultatet som "Præcis" for C4-cellen.

Kode:

Sub StrComp_Example4 () Dim resultat som streng Dim I som heltal for i = 2 til 6 resultat = StrComp (celler (i, 1). Værdi, celler (i, 2). Værdi, vbTextCompare) hvis resultat = 0 derefter celler (i , 3) .Value = "Præcise" Andre celler (i, 3) .Value = "Ikke eksakt" Afslut, hvis næste jeg afslutter sub

Denne kode returnerer nedenstående resultat.

Interessante artikler...