U VBA možete usporediti dva niza pomoću StrComp funkcija. U ovom ćete vodiču naučiti kako koristiti ovu funkciju s različitim metodama usporedbe.
Ako želite naučiti kako koristiti VBA operater za usporedbu netočnih podudaranja, kliknite ovdje: VBA Like Operator.
Ako želite naučiti kako koristiti operatore za usporedbu, kliknite ovdje: VBA Operatori za usporedbu - nije jednako & više
Upotreba funkcije StrComp za usporedbu dva niza
The StrComp funkcija uzima dva niza i metodu usporedbe kao argumente. Postoje 3 metode usporedbe:
- vbBinaryCompare - uspoređuje dva binarna niza (osjetljiva na velika i mala slova);
- vbTextCompare - uspoređuje dva niza kao tekstove (ne razlikuju velika i mala slova);
- vbDatabaseCompare - ova je metoda dostupna samo u Microsoft Accessu, a ne i u VBA.
Prema zadanim postavkama, funkcija koristi binarnu metodu. Ako izostavimo ovaj argument, funkcija će razlikovati velika i mala slova.
Funkcija vraća sljedeće rezultate:
- 0 - ako su nizovi jednaki;
- -1 - ako je niz 1 manji od niza 2;
- 1 - ako je niz 1 veći od niza 2;
- Null - ako je jedan od nizova prazan.
Evo primjera koda:
123 | Dim intResult Kao cijeli brojintResult = StrComp ("Računalo", "Računalo") |
U ovom primjeru želimo provjeriti jesu li stringovi "Računalo" i "Računalo" jednaki su, koristeći zadanu metodu usporedbe (binarna). Rezultat funkcije je u intResult promjenjiva. Kao što možete vidjeti na slici, oba niza su jednaka, stoga je intResult ima vrijednost 0.
Slika 1. Korištenje funkcije StrComp s binarnom metodom u VBA
Korištenje funkcije StrComp s binarnom i tekstualnom metodom
Sada ćete vidjeti razliku između korištenja binarne i tekstualne metode. Binarna metoda ima binarni broj za svaki znak, pa su velika i mala slova različiti znakovi u ovoj metodi. S druge strane, tekstualna metoda razmatra “S” i “s” kao ista slova. Ako želite učiniti funkciju osjetljivom na velika i mala slova, morate postaviti treći argument na vbBinaryCompare. Evo koda:
123456 | Dim intResult1 kao cijeli brojDim intResult2 kao cijeli brojintResult1 = StrComp ("Računalo", "CompuTer")intResult2 = StrComp ("Računalo", "CompuTer", vbTextCompare) |
Želimo usporediti žice "Računalo" i "Računalo", koristeći obje metode.
U varijabli intResult1, vrijednost ćemo dobiti binarnom metodom, dok je intResult2 dobit će vrijednost tekstualnom metodom. Možete vidjeti vrijednosti ove dvije varijable:
Slika 2. Korištenje funkcije StrComp s binarnom i tekstualnom metodom
Vrijednost intResult1 je 1, što znači da su dva niza različita za binarnu metodu. Za tekstualnu metodu ova su dva niza jednaka, pa je vrijednost intResult2 je 0.