VBA StrComp - Võrrelge funktsiooni StrComp abil VBA stringe

Lang L: none (table-of-contents)

Exceli VBA StrComp funktsioon

VBA StrComp on sisseehitatud funktsioon, mida kasutatakse, et võrrelda, kas kaks stringi väärtust on samad või mitte. Tulemused pole vaikimisi tõesed või valed nagu töölehel, pigem on need erinevad.

Enne kui vaatame tulemusi, lubage mul kõigepealt näidata funktsiooni StrComp süntaks.

  • String 1: String 1 on esimene string või väärtus, mida me võrdleme.
  • String 2: String 2 on teine ​​string või väärtus, mida me 1. stringiga võrdleme .
  • Võrdle: siin pakume kolme võimalust.
      • 0 = binaarne võrdlus. See teeb väiketähtede arvutused. Näiteks ei ole “Tere” võrdne “TERE”, sest mõlemad sõnad on erinevad. See on vaikeväärtus, kui ignoreerite seda parameetrit. vbBinaryCompare
      • 1 = teksti võrdlus. Selle suvandiga tehakse arvutused, mis ei ole tõstutundlikud. Näiteks on “Tere” võrdne sündmusega “TERE”, kuigi mõlemad sõnad on erinevad. vbTextCompare
      • 2 = Juurdepääs võrdlusele. See teeb andmebaaside võrdluse.

Stringi võrdlemise (StrComp) funktsiooni tulemused

Nagu ma ütlesin, kui võrdleme töölehel kahte väärtust, saame tulemuseks kas TÕENE või VALE. Kuid VBA stringide võrdlusfunktsiooniga pole tulemused samad.

  • Saame nulli (0), kui string 1 on stringiga 2 võrdne .
  • Saame ühe (1), kui 1. stringi väärtus on suurem kui stringi 2 väärtus .
  • Saame miinus üks (-1), kui 1. stringi väärtus on väiksem kui 2. string
  • Saame NULL, kui 1. stringi või 2. stringi väärtus on NULL.

Näited funktsiooni VBA StrComp kasutamiseks

Näide 1

Alustame lihtsast näitest. Näiteks võrdleme kahte väärtust, st "Excel VBA" ja "Excel VBA".

Kood:

Alam StrComp_Example1 () Dim FirstValue stringina "Stringi 1 väärtuse salvestamiseks Dim SecondValue stringina" String 2 väärtuse salvestamiseks Dim Result As String "StrCompi valemi tulemuse salvestamiseks FirstValue =" Excel VBA "" Määrake stringi 1 väärtus SecondValue = "Excel VBA" "Määrake stringi 2 väärtus Tulemus = StrComp (FirstValue, SecondValue, vbBinaryCompare) 'Rakenda funktsiooni StrComp MsgBox Result' Kuva tulemus sõnumikastis End Sub

Selle koodi käivitamisel saame tulemuseks nulli (0) , kuna nii stringi 1 kui ka stringi 2 väärtused on samad.

Näide 2

Nüüd muudan kahe sõna tähti.

String 1 = Exceli Vba

String 2 = Exceli VBA

Kood:

Alam StrComp_Example2 () Dim FirstValue stringina "Stringi 1 väärtuse salvestamiseks Dim SecondValue stringina" String 2 väärtuse salvestamiseks Dim Result as String "StrCompi valemi tulemuse salvestamiseks FirstValue =" Excel Vba "" Määrake stringi 1 väärtus SecondValue = "Excel VBA" "Määrake stringi 2 väärtus Tulemus = StrComp (FirstValue, SecondValue, vbBinaryCompare)" Rakenda funktsiooni StrComp MsgBox Result "Kuva tulemus sõnumikastis End Sub

Selle koodi käivitamisel saame ühe, sest kuna me esitasime argumenti Võrdle nimega „ vbBinaryCompare”, kontrollib see suurtähtede tundlikkust.

Nüüd muudan valiku Võrdle väärtusest „ vbBinaryCompare“ väärtuseks „ vbTextCompare“

Kood:

Alam StrComp_Example3 () Dim FirstValue stringina "Stringi 1 väärtuse salvestamiseks Dim SecondValue stringina" String 2 väärtuse salvestamiseks Dim Result As String "StrCompi valemi tulemuse salvestamiseks FirstValue =" Excel Vba "" Määrake stringi 1 väärtus SecondValue = "Excel VBA" "Määrake stringi 2 väärtus Tulemus = StrComp (FirstValue, SecondValue, vbTextCompare)" Rakenda funktsiooni StrComp MsgBox Result "Kuva tulemus sõnumikastis End Sub

Selle võrdluse abil saame nulli (0), kuna vbaTextCompare ignoreerib suurtäht tundlikke sõnu.

Näide # 3

VBA StrCompi juhtumianalüüs IF tingimustega

Oletame, et teil on andmed nagu alloleval pildil.

Me peame võrrelda String 1 koos String 2 ja saabuda Tulemus nagu "Täpne", kui mõlemad on sama, teine tulemus peaks olema "Ei Täpne."

Allolev kood teeb selle töö meie eest ära.

Kood:

Alam StrComp_Example4 () Dim Tulemus stringina Dim I täisarvuna i = 2 kuni 6 tulemus = StrComp (lahtrid (i, 1). Väärtus, lahtrid (i, 2). Väärtus) Kui tulemus = 0, siis lahtrid (i, 3 ) .Value = "Täpsed" muud lahtrid (i, 3). Väärtus = "Pole täpne" lõpp, kui järgmine i lõpp alam

Kui käivitan ülaltoodud VBA-koodi Excelis, saame järgmise tulemuse.

Kui vaatate C4 lahtrit, siis String 1 ja String 2 on samad, kuid tähemärgid on tõstutundlikud, nii et tulemus on "Pole täpne". Selle probleemi lahendamiseks peame pakkuma võrdlust kui vbTextCompare.

Allpool on muudetud kood, et saada tulemus C4-lahtri jaoks täpne.

Kood:

Alam StrComp_Example4 () Dim Tulemus stringina Dim I täisarvuna i = 2 kuni 6 tulemus = StrComp (lahtrid (i, 1). Väärtus, lahtrid (i, 2). Väärtus, vbTextCompare) kui tulemus = 0, siis lahtrid (i , 3). Väärtus = "Täpsed" muud lahtrid (i, 3). Väärtus = "Pole täpne" Lõpeta, kui järgmine i Lõpp alam

See kood tagastab allpool toodud tulemuse.

Huvitavad Artiklid...