VBA Сравнете низове - StrComp

Във 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.

wave wave wave wave wave