VBA -s saate kahte stringi võrrelda, kasutades StrComp funktsiooni. Selles õpetuses saate teada, kuidas seda funktsiooni erinevate võrdlusmeetoditega kasutada.
Kui soovite õppida, kuidas kasutada VBA sarnast operaatorit ebatäpsete vastete võrdlemiseks, klõpsake siin: VBA meeldib operaator.
Kui soovite õppida võrdlusoperaatorite kasutamist, klõpsake siin: VBA võrdlusoperaatorid - pole võrdne ja palju muud
Funktsiooni StrComp kasutamine kahe stringi võrdlemiseks
The StrComp funktsioon võtab argumentidena kaks stringi ja võrdlusmeetodi. Võrdlusmeetodeid on 3:
- vbBinaryCompare - võrdleb kahte binaarset stringi (tõstutundlik);
- vbTextCompare - võrdleb kahte stringi tekstidena (tõstutundetu);
- vbDatabaseCompare - see meetod on saadaval ainult Microsoft Accessis, mitte VBA -s.
Vaikimisi kasutab funktsioon binaarmeetodit. Kui me selle argumendi välja jätame, on funktsioon tõstutundlik.
Funktsioon tagastab järgmised tulemused:
- 0 - kui stringid on võrdsed;
- -1 - kui string 1 on väiksem kui string 2;
- 1 - kui string 1 on suurem kui string 2;
- Null - kui üks stringidest on tühi.
Siin on näite kood:
123 | Hämarda intResult täisarvunaintResult = StrComp ("Arvuti", "Arvuti") |
Selles näites tahame kontrollida, kas stringid "Arvuti" ja "Arvuti" on võrdsed, kasutades vaikimisi võrdlusmeetodit (binaar). Funktsiooni tulemus on intResult muutuja. Nagu pildilt näha, on mõlemad stringid võrdsed, seega intResult väärtus on 0.
Pilt 1. Funktsiooni StrComp kasutamine binaarse meetodiga VBA -s
Funktsiooni StrComp kasutamine koos binaarse ja tekstilise meetodiga
Nüüd näete erinevust binaarse ja tekstilise meetodi kasutamise vahel. Binaarmeetodil on iga tähemärgi jaoks kahendarv, seega on suured ja väiketähed selles meetodis erinevad. Teisest küljest käsitleb tekstimeetod „S” ja „s” samade tähtedena. Kui soovite funktsiooni muuta väiketähtedeta, peate määrama kolmanda argumendi väärtuseks vbBinaryCompare. Siin on kood:
123456 | Dim intResult1 täisarvunaDim intResult2 täisarvunaintResult1 = StrComp ("Arvuti", "CompuTer")intResult2 = StrComp ("Arvuti", "CompuTer", vbTextCompare) |
Me tahame stringe võrrelda "Arvuti" ja "Arvuti", kasutades mõlemat meetodit.
Muutujaga IntResult1, saame väärtuse binaarmeetodi abil, samas kui intResult2 saab väärtuse tekstilise meetodiga. Näete nende kahe muutuja väärtusi:
Pilt 2. Funktsiooni StrComp kasutamine binaarse ja tekstilise meetodiga
Väärtus IntResult1 on 1, mis tähendab, et kaks strinaari on binaarmeetodi puhul erinevad. Tekstimeetodi puhul on need kaks stringi võrdsed, seega väärtus intResult2 on 0.