VBA-merkkijonojen vertailu - Kuinka vertailla kahta merkkijonoa?

Excel VBA -merkkijonojen vertailu

VBA: n kahden merkkijonon vertailemiseksi meillä on sisäänrakennettu toiminto eli " StrComp ". Tämän voimme lukea nimellä " merkkijonovertailu ", tämä toiminto on käytettävissä vain VBA: n kanssa eikä ole käytettävissä laskentataulukko-funktiona. Se vertaa kahta merkkijonoa ja palauttaa tulokset nimellä "Zero (0)", jos molemmat merkkijonot ovat yhteensopivia ja jos molemmat toimitetut merkkijonot eivät ole yhteensopivia, tulokseksi saadaan "One (1)" .

VBA: ssa tai Excelissä kohtaamme paljon erilaisia ​​skenaarioita. Yksi tällainen skenaario on "kahden merkkijonon arvon vertaaminen". Tavallisessa laskentataulukossa voimme tehdä nämä useampia tapoja, mutta miten teet tämän VBA: ssa?

Alla on "StrComp" -funktion syntakse.

Ensinnäkin kaksi argumenttia ovat melko yksinkertaisia,

  • for String 1, meidän täytyy toimittaa mitä ensimmäinen arvo olemme vertaamalla ja
  • for String 2, meidän täytyy toimittaa toinen arvo olemme vertaamalla.
  • (Vertaa) tämä on StrComp-funktion valinnainen argumentti. Tästä on hyötyä, kun haluamme verrata kirjainkoon erottelua. Esimerkiksi tässä argumentissa "Excel" ei ole yhtä suuri kuin "EXCEL", koska molemmat sanat erottavat isot ja pienet kirjaimet.

Voimme toimittaa kolme arvoa.

  • Nolla (0) ja ” Binary Vertaa, ” eli ”Excel” ei ole sama kuin ”Excel”. Kirjainkoon huomioon ottamiseksi voidaan toimittaa 0.
  • Yksi (1) tekstin vertailulle eli Excelille on yhtä suuri kuin EXCEL. Tämä on ei-kirjainkokoinen vertailu.
  • Kaksi (2) tämä vain tietokantavertailuun.

"StrComp" -toiminnon tulokset eivät ole oletusarvoisesti TOSI tai EPÄTOSI, mutta vaihtelevat. Alla on StrComp-funktion eri tulokset.

  • Tuloksena on "0" , jos toimitetut merkkijonot vastaavat toisiaan.
  • Saamme “1”, jos toimitetut merkkijonot eivät täsmää, ja numeerisen vastaavuuden tapauksessa saamme 1, jos merkkijono 1 on suurempi kuin merkkijono 2.
  • Saamme “-1”, jos merkkijonon 1 numero on pienempi kuin merkkijonon 2 numero.

Kuinka suorittaa merkkijonovertailu VBA: ssa?

Esimerkki 1

Yhdistämme ” Bangaloren ” merkkijonoon ” Bangalore ”.

Ilmoita ensin kaksi VBA-muuttujaa merkkijonona kahden merkkijonon arvon tallentamiseksi.

Koodi:

Alimerkkijono_vertailu_esimerkki1 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonona End Sub

Tallenna näille kahdelle muuttujalle kaksi merkkijonoa.

Koodi:

Alimerkkijono_vertailu_esimerkki1 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonona1 = "Bangalore" -arvo2 = "BANGALORE" End Sub

Ilmoita nyt yksi muuttuja StrComp- funktion tuloksen tallentamiseksi .

Koodi:

Alimerkkijono_vertailu_esimerkki1 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonona1 = "Bangalore" -arvo2 = "BANGALORE" Dim FinalResult merkkijonon loppuosana

Avaa tälle muuttujalle StrComp-toiminto.

Koodi:

Alimerkkijono_vertailu_esimerkki1 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonoarvona1 = "Bangalore" -arvo2 = "BANGALORE" Dim FinalResult Kuten merkkijono FinalResult = StrComp (End Sub

"String1" ja "String2" olemme jo määrittäneet arvot muuttujien kautta, joten syötä muuttujien nimet.

Koodi:

Alimerkkijono_vertailu_esimerkki1 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonoarvona1 = "Bangalore" -arvo2 = "BANGALORE" Dim FinalResult Kuten merkkijono FinalResult = StrComp (arvo1, arvo2, loppuosa

Funktion viimeinen osa on "Vertaa" tälle valinnalle "vbTextCompare".

Koodi:

Alimerkkijono_vertailu_esimerkki1 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonoarvona1 = "Bangalore" -arvo2 = "BANGALORE" Dim FinalResult Kuten merkkijono FinalResult = StrComp (Arvo1, Arvo2, vbTextCompare) Loppuosa

Näytä nyt ”Final Result” -muuttuja VBA: n viestiruudussa.

Koodi:

Alimerkkijono_vertailu_esimerkki1 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonoarvona1 = "Bangalore" Arvo2 = "BANGALORE" Dim FinalResult Kuten merkkijono FinalResult = StrComp (Arvo1, Arvo2, vbTextCompare) MsgBox FinalResult End Sub

Ok, suoritetaan koodi ja katsotaan tulos.

Tuotos:

Koska molemmat merkkijonot "Bangalore" ja "Bangalore" ovat samat, saimme tuloksen 0, so. Molemmat arvot ovat isot ja pienet kirjaimet, koska olemme toimittaneet argumentin nimellä “vbTextCompare”, se on ohittanut pienet ja pienet kirjaimet ja vastaavat vain arvoja, joten molemmat arvot ovat samat ja tulos on 0, TOSI.

Koodi:

Alimerkkijono_vertailu_esimerkki1 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonoarvona1 = "Bangalore" Arvo2 = "BANGALORE" Dim FinalResult Kuten merkkijono FinalResult = StrComp (Arvo1, Arvo2, vbTextCompare) MsgBox FinalResult End Sub

Esimerkki 2

Samasta koodia, voimme muuttaa vertailla menetelmällä ”vbTextCompare” ja ”vbBinaryCompare.”

Koodi:

Alimerkkijono_vertailu_esimerkki2 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonoarvona1 = "Bangalore" Arvo2 = "BANGALORE" Dim FinalResult Kuten merkkijono FinalResult = StrComp (Arvo1, Arvo2, vbBinaryCompare) MsgBox FinalResult End Sub

Suorita nyt koodi ja katso tulos.

Tuotos:

Vaikka molemmat merkkijonot ovat samat, saimme tuloksen muodossa 1, ts. Ei täsmää, koska olemme soveltaneet vertailumenetelmää nimellä “vbBinaryCompare”, joka vertaa kahta arvoa kirjainkoon mukaan.

Esimerkki 3

Nyt näemme kuinka vertailla numeerisia arvoja. Samalle koodille määritämme eri arvot.

Koodi:

Alimerkkijono_vertailu_esimerkki3 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonona1 = 500 arvo2 = 500 Dim FinalResult Kuten merkkijono FinalResult = StrComp (arvo1, arvo2, vbBinaryCompare) MsgBox FinalResult End Sub

Molemmat arvot ovat 500, ja tulokseksi saadaan 0, koska molemmat arvot vastaavat.

Tuotos:

Nyt vaihdan Value1-luvun 500: sta 100: een.

Koodi:

Alimerkkijono_vertailu_esimerkki3 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonona1 = 1000 arvo2 = 500 Dim FinalResult Kuten merkkijono FinalResult = StrComp (arvo1, arvo2, vbBinaryCompare) MsgBox FinalResult End Sub

Suorita koodi ja katso tulos.

Tuotos:

Tiedämme, että arvo1 ja arvo2 eivät ole samat, mutta tulos on -1 eikä 1, koska numeerista vertailua varten, kun merkkijono 1 arvo on suurempi kuin merkkijono 2, saamme tämän -1.

Koodi:

Alimerkkijono_vertailu_esimerkki3 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonona1 = 1000 arvo2 = 500 Dim FinalResult Kuten merkkijono FinalResult = StrComp (arvo1, arvo2, vbBinaryCompare) MsgBox FinalResult End Sub

Nyt käännän arvot.

Koodi:

Alimerkkijono_vertailu_esimerkki3 () Dim-arvo1 merkkijonona Dim-arvo2 merkkijonoarvona1 = 500 arvo2 = 1000 Dim FinalResult Kuten merkkijono FinalResult = StrComp (arvo1, arvo2, vbBinaryCompare) MsgBox FinalResult End Sub

Suorita koodi ja katso tulos.

Tuotos:

Tämä ei ole erityistä. Jos ei täsmää, saamme vain yhden.

Muistettavaa täällä

  • (Vertaa) "StrComp" -argumentti on valinnainen, mutta jos kyseessä on pienet ja pienet kirjaimet, voimme käyttää sitä, ja vaihtoehto on "vbBinaryCompare".
  • Numeeristen arvojen tulos on hieman erilainen, jos merkkijono 1 on suurempi kuin merkkijono 2, ja tulos on -1.
  • Tulokset ovat 0, jos vastaavat ja 1, jos ei täsmää.

Suositellut artikkelit

Tämä on opas VBA-merkkijonojen vertailuun. Tässä keskustellaan kuinka vertailla kahta merkkijonoarvoa StrComp-funktiolla excel VBA: ssa yhdessä esimerkkien kanssa ja ladata excel-malli. Saatat myös tarkastella muita Excel VBA: hon liittyviä artikkeleita -

  • Opas VBA-merkkijonofunktioihin
  • VBA jakaa merkkijonon taulukkoon
  • VBA SubString -menetelmät
  • VBA-teksti

Mielenkiintoisia artikkeleita...