Функція VBA StrComp

У своїй роботі ми зазвичай робимо порівняння кожного разу. Ці порівняння можуть бути в текстах чисел або будь-яких даних. Щодо чисел, ми вже знаємо, як робити порівняння. Для цього існує маса математичних методів. Але як ми порівняємо два рядки, який результат ми отримаємо. STRCOMP у VBA - це функція порівняння рядків. Він порівнює два рядки між собою і дає нам результат. Однак результат порівняння не є істинним чи хибним. Існує три способи порівняння двох рядків у функції STRCOMP. Перш ніж зануритися в це, давайте подивимось синтаксис цієї функції.

Синтаксис StrComp в Excel VBA

Синтаксис функції VBA StrComp у excel такий:

Рядок 1 - це рядок, який буде порівнюватися з рядком 2. Методи порівняння для цієї функції необов’язкові. Тепер перейдемо до методів порівняння в цій функції. У цій функції є три типи методів порівняння:

  1. VbBinaryCompare: Це метод порівняння за замовчуванням, якщо ми не обираємо метод порівняння для нашої функції. Цей метод порівняння є чутливим до регістру, що означає, що рядок 1 і рядок 2 однакові, але рядок 1 в нижньому регістрі, а рядок 2 - у верхньому регістрі, обидва не будуть схожими. Бінарний код для "a" та "A" відрізняються. Аналогічно і для інших персонажів. Ці коди називаються кодами ASCII.
  2. VbTextCompare: У цьому методі порівняння порівняння не враховує великі регістри, тому якщо рядок 1 і рядок 2 рівні, але не в тому самому випадку, тоді будуть використані ці методи порівняння.
  3. Порівняння доступу: Цей метод використовується у порівнянні баз даних.

Тепер, коли ми використовуємо цю функцію, який результат ми отримаємо? Ми не отримаємо правдиву чи хибну, використовуючи цю функцію порівняння. Натомість ми можемо мати будь-який з наступних результатів:

  1. 0, якщо рядки рівні між собою.
  2. 1, якщо рядки не збігаються між собою.
  3. -1, якщо перший рядок менший за рядок 2.
  4. NULL, якщо немає значення як для рядка 1, так і для рядка 2.

Ми переглянемо кілька різних прикладів і побачимо, як ці порівняння рядків робляться в VBA.

Як використовувати функцію VBA StrComp в Excel?

Ми дізнаємось, як використовувати функцію VBA StrComp із прикладом у excel.

Ви можете завантажити шаблон VBA StrComp Excel тут - шаблон VBA StrComp Excel

Приклад №1 - VBA StrComp

Спершу скористаємось нашим прикладом метод Бінарного порівняння. Ми візьмемо два введення рядка від користувача, один у нижньому регістрі, а інший буде у верхньому регістрі та порівняємо їх.

Крок 1: На вкладці розробника, а потім з Visual Basic потрапити в редактор VB.

Крок 2: Вставте модуль на вкладці "Вставка", щоб почати писати коди в VBA.

Крок 3: Двічі клацніть на модулі на вкладці проекту та оголосіть підфункцію наступним чином.

Код:

 Sub Sample () Кінець Sub 

Крок 4: Нам потрібно визначити три змінні як рядки, дві затримають наше введення, а інша збереже результат.

Код:

 Sub Sample () Dim A, B, C As String End Sub 

Крок 5: У змінних A і B беруть дані від користувача для двох рядків наступним чином.

Код:

 Підпроба () Dim A, B, C як рядок A = InputBox ("Введіть рядок", "Малі регістри") B = InputBox ("Введіть рядок", "У верхній регістр") Кінець підряд 

Крок 6: Порівняйте обидва рядки у змінних A і B і збережіть значення в C за допомогою функції STRCOMP і використовуйте метод порівняння як двійкове порівняння.

Код:

 Підпроба () Dim A, B, C As String A = InputBox ("Введіть рядок", "In строчний регістр") B = InputBox ("Введіть рядок", "У верхній регістр") C = StrComp (A, B, vbBinaryCompare) Закінчення Sub 

Крок 7: Відображення виводу, що зберігається у змінній С, використовуючи функцію Msgbox.

Код:

 Підпроба () Dim A, B, C As String A = InputBox ("Введіть рядок", "In строчний регістр") B = InputBox ("Введіть рядок", "У верхній регістр") C = StrComp (A, B, vbBinaryCompare) MsgBox C End Sub 

Крок 8: Тепер натисніть F5, щоб виконати код і надати два вхідні рядки, як описано нижче,

Крок 9: Дивіться кінцевий результат наступним чином.

У результаті ми отримуємо 1, оскільки в Бінарному порівнянні обидва рядки не є рівними, оскільки одна з рядків у верхньому регістрі, а інша - у нижньому регістрі.

Приклад №2 - VBA StrComp

Тепер давайте скористаємось іншим методом порівняння, який є VbTextCompare, і подивимося, які результати ми отримаємо за ті самі входи, які ми надали вище.

Крок 1. У модуль, який ми вставили раніше, двічі клацніть на ньому на вкладці проекту та оголосимо підфункцію, щоб почати працювати над другим прикладом наступним чином.

Код:

 Sub Sample1 () Кінець Sub 

Крок 2: Нам потрібно визначити три змінні як рядки, дві затримають наше введення, а інша збереже результат.

Код:

 Sub Sample1 () Dim A, B, C As String End Sub 

Крок 3: У змінних A і B беруть дані від користувача для двох рядків наступним чином.

Код:

 Sub Sample1 () Dim A, B, C As String A = InputBox ("Введіть рядок", "Малі літери") B = InputBox ("Введіть рядок", "У верхній регістр") Кінець Sub 

Крок 4: Порівняйте обидва рядки в змінних A і B і збережіть значення в C за допомогою функції STRCOMP і використовуйте метод порівняння як порівняння тексту.

Код:

 Sub Sample1 () Dim A, B, C As String A = InputBox ("Введіть рядок", "In строчний регістр") B = InputBox ("Введіть рядок", "У верхній регістр") C = StrComp (A, B, vbTextCompare) Кінець підряд 

Крок 5: Відображення виводу, збереженого в змінній С, за допомогою функції Msgbox.

Код:

 Sub Sample1 () Dim A, B, C As String A = InputBox ("Введіть рядок", "In строчний регістр") B = InputBox ("Введіть рядок", "У верхній регістр") C = StrComp (A, B, vbTextCompare) MsgBox C End Sub 

Крок 6: Тепер натисніть F5 і надайте два вхідні рядки наступним чином.

Крок 7: Дивіться кінцевий результат наступним чином.

У результаті ми отримуємо 0, оскільки порівняння тексту не відрізняється від регістру, що означає, що рядки рівні.

Приклад №3 - VBA StrComp

Тепер я маю деякі дані в Таблиці 1 наступним чином, я хочу з’ясувати, чи обидва дані у стовпці А та стовпці Б схожі між собою чи ні. Погляньте на дані нижче.

Крок 1: Давайте працюємо в третьому прикладі для наших даних наступним чином.

Код:

 Sub Sample2 () Кінець Sub 

Крок 2: Активуйте робочий аркуш 1, щоб ми могли використовувати його властивості.

Код:

 Робочі таблиці Sub Sample2 () ("Sheet1") 

Крок 3: Оголосіть дві змінні: одну як ціле число, яке буде використано для циклу, а інше - як рядок, який буде використаний для зберігання результату порівняння.

Код:

 Робочі таблиці Sub Sample2 () ("Sheet1"). Активуйте Dim A як ціле число Dim B як String End Sub 

Крок 4: Напишіть наступний код для порівняння та використання циклу.

Код:

 Sub Sample2 () робочі таблиці ("Sheet1"). Активуйте Dim A як цілий розмір Dim B як рядок для A = 2 до 5 B = StrComp (комірки (A, 1) .Value, Cells (A, 2) .Value, vbBinaryCompare) Якщо B = 0, тоді клітини (A, 3) .Value = "Рівні" інші клітини (A, 3) .Value = "НЕ рівний" Кінець, якщо наступний кінець Sub 

Крок 5: Запустіть наведений вище код і подивіться результат у таблиці 1 наступним чином.

Жодна з рядків не була рівною в порівнянні.

Що потрібно пам’ятати

  • Це функція порівняння.
  • Він повертає 0, 1, -1 або NULL, як результат, не вірно чи неправдиво.
  • Якщо ми не надаємо жодного з методів порівняння, то за замовчуванням метод порівняння - VbBinaryCompare.
  • Метод порівняння - необов'язковий аргумент для цієї функції.

Рекомендовані статті

Це керівництво по VBA StrComp. Тут ми обговорюємо, як використовувати функцію Excel VBA StrComp разом із практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. VBA InStr пояснив із прикладами
  2. Тип даних цілочисельного VBA
  3. Як вибрати клітинку за допомогою коду VBA?
  4. Перемістіть діапазон у VBA
  5. Робочі таблиці VBA (приклади)

Категорія: