Във VBA можете да сравните два низа с помощта на StrComp функция. В този урок ще научите как да използвате тази функция с различни методи за сравнение.
Ако искате да научите как да използвате VBA подобен оператор за сравняване на неточни съвпадения, щракнете тук: VBA Like Operator.
Ако искате да научите как да използвате оператори за сравнение, щракнете тук: VBA Comparison Operators - Not Equal to & More
Използване на функцията StrComp за сравняване на две низове
The StrComp функцията приема два низа и метод за сравнение като аргументи. Има 3 метода за сравнение:
- vbBinaryCompare - сравнява два двоични низа (чувствителни към регистъра);
- vbTextCompare - сравнява два низа като текстове (нечувствителни към регистъра);
- vbDatabaseCompare - този метод е достъпен само в Microsoft Access, но не и във VBA.
По подразбиране функцията използва двоичен метод. Ако пропуснем този аргумент, функцията ще е чувствителна към регистъра.
Функцията връща следните резултати:
- 0 - ако низовете са равни;
- -1 - ако низ 1 е по -малък от низ 2;
- 1 - ако низ 1 е по -голям от низ 2;
- Нула - ако един от низовете е празен.
Ето примерния код:
123 | Dim intResult As IntegerintResult = StrComp ("Компютър", "Компютър") |
В този пример искаме да проверим дали низове „Компютър“ и „Компютър“ са равни, като се използва стандартният метод за сравнение (двоичен). Резултатът от функцията е в intResult променлива. Както можете да видите в Image, двата низа са равни, следователно intResult има стойност 0.
Изображение 1. Използване на функцията StrComp с двоичен метод във VBA
Използване на функцията StrComp с двоичен и текстов метод
Сега ще видите разликата между използването на двоичен и текстов метод. Двоичният метод има двоично число за всеки знак, така че главните и малките букви са различни знаци в този метод. От друга страна, текстовият метод разглежда „S“ и „s“ като едни и същи букви. Ако искате да направите функцията нечувствителна към регистъра, трябва да зададете третия аргумент на vbBinaryCompare. Ето кода:
123456 | Dim intResult1 Като цяло числоDim intResult2 като цяло числоintResult1 = StrComp ("Компютър", "CompuTer")intResult2 = StrComp ("Компютър", "CompuTer", vbTextCompare) |
Искаме да сравним низовете „Компютър“ и „Компютър“, използвайки и двата метода.
В променливата intResult1, ще получим стойността с двоичния метод, докато intResult2 ще получи стойността с текстовия метод. Можете да видите стойностите на тези две променливи:
Изображение 2. Използване на функцията StrComp с двоичен и текстов метод
Стойността на intResult1 е 1, което означава, че два низа са различни за двоичния метод. За текстовия метод тези два низа са равни, така че стойността на intResult2 е 0.