У VBA можна порівняти два рядки за допомогою Подобається оператор для перевірки відповідності рядків. У цьому уроці ви дізнаєтесь, як використовувати цей оператор з різними шаблонами.
Якщо ви хочете дізнатися, як порівнювати рядки у VBA, натисніть тут: VBA Порівняти рядки - StrComp
Якщо ви хочете дізнатися, як використовувати оператори порівняння, натисніть тут: Оператори порівняння VBA - не дорівнює & Більше
Використання оператора Like для порівняння двох рядків
За допомогою оператора Like ми можемо перевірити, чи починається рядок з певного тексту, включає його тощо. За замовчуванням файл Подобається оператор порівнює символи за допомогою двійкового методу. Це означає, що оператор чутливий до регістру. Якщо ви хочете зробити його безчутливим до регістру, вам потрібно поставити Опція Порівняти текст у верхній частині вашого модуля. Використовуючи цей метод, Подобається оператор вважає "S" і "s" тими самими символами. У наших прикладах ми будемо використовувати порівняння за умовчанням з урахуванням регістру.
Якщо відповідність існує, файл Подобається в результаті оператор повертає True або False в іншому випадку.
По -перше, ми розглянемо простий приклад, де ми хочемо перевірити, чи починається наша рядкова змінна Містер. Для цього вам потрібно поставити зірочку (*) в кінці відповідного тексту (Містер*). Ось код:
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim blnРезультат БулевоstrName = "Містер Майкл Джеймс"Якщо strName як "Mr*" ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити ЯкщоEnd Sub |
У цьому прикладі ми хочемо перевірити, чи є рядок strName починається з Містер і повернути значення True або False у змінній blnResult.
Спочатку ми встановлюємо значення strName до Пан Майкл Джеймс:
1 | strName = "Містер Майкл Джеймс" |
Тоді ми використовуємо Подобається оператор у операторі If:
12345 | Якщо strName як "Mr*" ТодіblnResult = ПравдаІнакшеblnResult = НеправдаЗакінчити Якщо |
Як і strName починається з Містер, blnResult повертає True:
Зображення 1. За допомогою оператора «Like» перевірити, чи починається рядок з певних символів
Використання подібного оператора з різними шаблонами відповідності
Оператор Like може перевірити відповідність двох рядків на основі різних шаблонів. Ось список можливих шаблонів відповідності:
Код шаблону |
Тип відповідності |
* | Відповідає 0 або більше символам |
? | Відповідає одному символу |
# | Відповідає одній цифрі |
[символи] | Відповідає одному символу зі списку символів |
[А-Я] | Відповідає будь -якому великому символу з алфавіту |
[A-Za-z] | Відповідає будь -якому символу з алфавіту |
[! символи] | Відповідає одному символу, крім списку символів |
Тепер ми можемо побачити, як використовувати ці шаблони в коді. Ось приклад для кількох шаблонів:
Відповідність одному символу:
1234567 | strText1 = "ABCDE"Якщо strText1 Як "AB? DE" ТодіblnResult1 = ПравдаІнакшеblnResult1 = НеправдаЗакінчити Якщо |
Відповідність одній цифрі:
1234567 | strText2 = "AB7DE"Якщо strText2 Як "AB#DE" ТодіblnResult2 = ІстинаІнакшеblnResult2 = НеправдаЗакінчити Якщо |
Відповідність будь -якому великому символу з алфавіту:
1234567 | strText3 = "ABCDE"Якщо strText3 Як "AB [A-Z] DE" ТодіblnResult3 = ПравдаІнакшеblnResult3 = НеправдаЗакінчити Якщо |
Не відповідає жодному великому символу з алфавіту:
1234567 | strText4 = "AB7DE"Якщо strText4 Як "AB [! A-Z] DE" ТодіblnResult4 = ПравдаІнакшеblnResult4 = НеправдаЗакінчити Якщо |
Відповідність будь -якому символу з алфавіту (великі чи малі літери):
1234567 | strText5 = "ABcDE"Якщо strText5 Як "AB [A-Za-z] DE" ТодіblnResult5 = ПравдаІнакшеblnResult5 = НеправдаЗакінчити Якщо |
Під час виконання коду ви можете побачити, що файл Подобається оператор повертає True in blnResult змінні для кожного порівняння:
Зображення 2. Використання оператора Like з різними шаблонами відповідності