VBA StrComp - Sammenlign strenger i VBA ved hjelp av StrComp-funksjonen

Innholdsfortegnelse

Excel VBA StrComp-funksjon

VBA StrComp er en innebygd funksjon som brukes til å sammenligne om de to strengverdiene er like eller ikke. Imidlertid er resultatene ikke standard SANN eller FALSK som i regnearket, men det er annerledes.

Før vi ser på resultatene, la meg først vise syntaksen til StrComp-funksjonen.

  • Streng 1: Streng 1 er den første strengen eller verdien vi sammenligner.
  • Streng 2: Streng 2 er den andre strengen eller verdien vi sammenligner med streng 1 .
  • Sammenlign: Vi kan tilby tre alternativer her.
      • 0 = Binær sammenligning. Dette utfører store og små bokstaver. For eksempel er “Hei” ikke lik “HELLO” fordi begge ordene tilfeller er forskjellige. Dette er standardverdien hvis du ignorerer denne parameteren. vbBinaryCompare
      • 1 = Sammenlign tekst. Dette alternativet utfører ikke store og små bokstaver. For eksempel er "Hallo" lik "HELLO" -hendelsen, selv om begge ordene tilfeller er forskjellige. vbTextCompare
      • 2 = Tilgang Sammenlign. Dette utfører databasesammenligning.

Resultater av String Comparison (StrComp) Funksjon

Som jeg fortalte når vi sammenligner to verdier i regnearket, får vi resultatet som SANN eller FALSK. Men med VBA-strengesammenligningsfunksjonen er ikke resultatene de samme.

  • Vi får null (0) når streng 1 er lik streng 2.
  • Vi får en (1) når streng 1- verdien er større enn streng 2- verdien .
  • Vi får minus en (-1) når streng 1- verdien er mindre enn streng 2
  • Vi får NULL når streng 1 eller streng 2- verdien er NULL.

Eksempler på bruk av VBA StrComp-funksjon

Eksempel 1

La oss starte med et enkelt eksempel. For eksempel vil vi sammenligne to verdier, dvs. "Excel VBA" og "Excel VBA."

Kode:

Sub StrComp_Example1 () Dim FirstValue Som String 'For å lagre streng 1 verdi Dim SecondValue As String' For å lagre String 2-verdi Dim Resultat som String 'For å lagre resultat av StrComp-formelen FirstValue = "Excel VBA"' Tildel streng 1-verdi SecondValue = "Excel VBA" "Tildel streng 2-verdien Resultat = StrComp (FirstValue, SecondValue, vbBinaryCompare)" Apply StrComp-funksjon MsgBox-resultat "Vis resultatet i meldingsboksen Slutt Sub

Når jeg kjører denne koden, får vi null (0) som resultat fordi både streng 1 og streng 2- verdiene er de samme.

Eksempel 2

Nå vil jeg endre tilfellene med to ord.

Streng 1 = Excel Vba

Streng 2 = Excel VBA

Kode:

Sub StrComp_Example2 () Dim FirstValue Som String 'For å lagre streng 1 verdi Dim SecondValue As String' For å lagre String 2-verdi Dim Resultat som String 'For å lagre resultat av StrComp-formelen FirstValue = "Excel Vba"' Tildel streng 1-verdi SecondValue = "Excel VBA" "Tildel streng 2-verdien Resultat = StrComp (FirstValue, SecondValue, vbBinaryCompare)" Apply StrComp-funksjon MsgBox-resultat "Vis resultatet i meldingsboksen Slutt Sub

Når jeg kjører denne koden, får vi 1 fordi siden vi leverte sammenligningsargumentet som “ vbBinaryCompare”, vil det se etter store og små bokstaver.

Nå vil jeg endre sammenligningsalternativet fra “ vbBinaryCompare” til “ vbTextCompare”

Kode:

Sub StrComp_Example3 () Dim FirstValue Som String 'For å lagre streng 1 verdi Dim SecondValue As String' For å lagre String 2-verdi Dim Resultat som String 'For å lagre resultat av StrComp-formelen FirstValue = "Excel Vba"' Tildel streng 1-verdien SecondValue = "Excel VBA" 'Tildel streng 2-verdien Resultat = StrComp (FirstValue, SecondValue, vbTextCompare)' Apply StrComp-funksjon MsgBox-resultat 'Vis resultatet i meldingsboksen Slutt Sub

Med denne sammenligningen får vi null (0) fordi vbaTextCompare ignorerer store og små bokstaver.

Eksempel 3

Casestudie av VBA StrComp med IF-tilstand

Anta at du har dataene som bildet nedenfor.

Vi må sammenligne streng 1 med streng 2 og komme til resultatet som "nøyaktig" hvis begge er like, ellers skal resultatet være "ikke nøyaktig."

Koden nedenfor vil gjøre jobben for oss.

Kode:

Sub StrComp_Example4 () Dim Resultat som streng Dim I som heltall for i = 2 til 6 Resultat = StrComp (celler (i, 1). Verdi, celler (i, 2). Verdi) Hvis resultat = 0 deretter celler (i, 3 ) .Value = "Exact" Else Cells (i, 3) .Value = "Not Exact" End If Next i End Sub

Når jeg kjører ovennevnte VBA-kode i Excel, får vi resultatet nedenfor.

Hvis du ser på C4-celle er streng 1 og streng 2 de samme, men tegnene er store og små bokstaver, så resultatet er "Ikke nøyaktig." For å løse dette problemet, må vi levere Sammenlign som vbTextCompare.

Nedenfor er den modifiserte koden for å få resultatet som "Eksakt" for C4-cellen.

Kode:

Sub StrComp_Example4 () Dim resultat som streng Dim I som heltall for i = 2 til 6 resultat = StrComp (celler (i, 1). Verdi, celler (i, 2). Verdi, vbTextCompare) Hvis resultat = 0 deretter celler (i , 3) .Value = "Exact" Else Cells (i, 3) .Value = "Not Exact" End If Next i End Sub

Denne koden vil returnere resultatet nedenfor.

Interessante artikler...