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.
