V VBA lahko primerjate dva niza z uporabo StrComp funkcijo. V tej vadnici se boste naučili uporabljati to funkcijo z različnimi metodami primerjave.
Če se želite naučiti, kako z operaterjem VBA podobno primerjati nenatančna ujemanja, kliknite tukaj: VBA Like Operator.
Če se želite naučiti uporabljati primerjalne operaterje, kliknite tukaj: Primerjalni operaterji VBA - ni enako & več
Uporaba funkcije StrComp za primerjavo dveh nizov
The StrComp funkcija vzame dva niza in primerjalno metodo kot argumente. Obstajajo 3 metode za primerjavo:
- vbBinaryCompare - primerja dva binarna niza (občutljiva na velike in male črke);
- vbTextCompare - primerja dva niza kot besedila (ne razlikuje med velikimi in malimi črkami);
- vbDatabaseCompare - ta metoda je na voljo samo v Microsoft Accessu in ne v VBA.
Privzeto funkcija uporablja binarno metodo. Če izpustimo ta argument, bo funkcija občutljiva na velike in male črke.
Funkcija vrne naslednje rezultate:
- 0 - če so nizi enaki;
- -1 - če je niz 1 manjši od niza 2;
- 1 - če je niz 1 večji od niza 2;
- Ničelno - če je eden od nizov prazen.
Tu je primer kode:
123 | Zatemni intResult kot celo številointResult = StrComp ("Računalnik", "Računalnik") |
V tem primeru želimo preveriti, ali so nizi "Računalnik" in "Računalnik" so enaki z uporabo privzete metode primerjave (binarno). Rezultat funkcije je v intResult spremenljivka. Kot lahko vidite na sliki, sta oba niza enaka, zato je intResult ima vrednost 0.
Slika 1. Uporaba funkcije StrComp z binarno metodo v VBA
Uporaba funkcije StrComp z binarno in besedilno metodo
Zdaj boste videli razliko med uporabo binarne in besedilne metode. Binarna metoda ima za vsak znak binarno številko, zato sta velika in mala črka v tej metodi različni. Po drugi strani pa besedilna metoda šteje "S" in "s" kot iste črke. Če želite, da funkcija postane občutljiva na velike in male črke, morate nastaviti tretji argument na vbBinaryCompare. Tukaj je koda:
123456 | Zatemni intResult1 kot celo številoZatemni intResult2 kot celo številointResult1 = StrComp ("Računalnik", "Računalnik")intResult2 = StrComp ("Računalnik", "CompuTer", vbTextCompare) |
Primerjati želimo strune "Računalnik" in "Računalnik", z uporabo obeh metod.
V spremenljivki intResult1, bomo vrednost dobili z binarno metodo, medtem ko je intResult2 bo vrednost dobila z besedilno metodo. Ogledate si lahko vrednosti teh dveh spremenljivk:
Slika 2. Uporaba funkcije StrComp z binarno in besedilno metodo
Vrednost intResult1 je 1, kar pomeni, da sta dva niza različna za binarno metodo. Za besedilno metodo sta ti dve vrsti enaki, zato je vrednost intResult2 je 0.