VBA: ssa voit verrata kahta merkkijonoa käyttämällä StrComp toiminto. Tässä opetusohjelmassa opit käyttämään tätä toimintoa eri vertailumenetelmillä.
Jos haluat oppia käyttämään VBA: n kaltaista operaattoria vertaamaan epätarkkoja osumia, napsauta tätä: VBA Like Operator.
Jos haluat oppia käyttämään vertailuoperaattoreita, napsauta tätä: VBA -vertailuoperaattorit - ei yhtä ja muuta
StrComp -toiminnon käyttäminen kahden merkkijonon vertaamiseen
The StrComp funktio ottaa argumentteina kaksi merkkijonoa ja vertailumenetelmän. Vertailumenetelmiä on 3:
- vbBinaryCompare - vertaa kahta binaarijonoa (kirjainkoko erottaa);
- vbTextCompare - vertaa kahta merkkijonoa tekstinä (kirjainkoolla ei merkitystä);
- vbDatabaseCompare - tämä menetelmä on käytettävissä vain Microsoft Accessissa, ei VBA: ssa.
Oletuksena toiminto käyttää binäärimenetelmää. Jos jätämme tämän väitteen huomiotta, funktio on kirjainkoko.
Funktio palauttaa seuraavat tulokset:
- 0 - jos merkkijonot ovat yhtä suuret;
- -1 - jos merkkijono 1 on pienempi kuin merkkijono 2;
- 1 - jos merkkijono 1 on suurempi kuin merkkijono 2;
- Null - jos yksi merkkijonoista on tyhjä.
Tässä on esimerkkikoodi:
123 | Dim intResult kokonaislukunaintResult = StrComp ("Tietokone", "Tietokone") |
Tässä esimerkissä haluamme tarkistaa, ovatko merkkijonot "Tietokone" ja "Tietokone" ovat yhtä suuret käyttäen oletusvertailumenetelmää (binaarinen). Toiminnon tulos on intResult muuttuja. Kuten kuvasta näkyy, molemmat merkkijonot ovat yhtä suuret, joten intResult on arvo 0.
Kuva 1. StrComp -toiminnon käyttäminen binäärimenetelmän kanssa VBA: ssa
StrComp -toiminnon käyttäminen binääri- ja tekstimenetelmän kanssa
Näet nyt eron binaarisen ja tekstimenetelmän välillä. Binaarimenetelmässä on binääriluku jokaiselle merkille, joten isot ja pienet kirjaimet ovat eri merkkejä tässä menetelmässä. Toisaalta tekstimenetelmä pitää "S" ja "s" samoina kirjaimin. Jos haluat muuttaa funktion kirjainkoon erottumattomana, sinun on asetettava kolmas argumentti arvoon vbBinaryCompare. Tässä on koodi:
123456 | Dim intResult1 kokonaislukunaDim intResult2 kokonaislukunaintResult1 = StrComp ("Tietokone", "CompuTer")intResult2 = StrComp ("Tietokone", "CompuTer", vbTextCompare) |
Haluamme verrata merkkijonoja "Tietokone" ja "Tietokone", käyttämällä molempia menetelmiä.
Muuttujassa intResult1, saamme arvon binaarimenetelmällä, kun taas intResult2 saa arvon tekstimenetelmällä. Näet näiden kahden muuttujan arvot:
Kuva 2. StrComp -toiminnon käyttäminen binääri- ja tekstimenetelmällä
Arvo intResult1 on 1, mikä tarkoittaa, että kaksi merkkijonoa ovat erilaiset binäärimenetelmässä. Tekstimenetelmässä nämä kaksi merkkijonoa ovat yhtä suuret, joten arvo intResult2 on 0.