В VBA вы можете сравнить две строки, используя Нравиться оператор для проверки соответствия строк. В этом руководстве вы узнаете, как использовать этот оператор с различными шаблонами.
Если вы хотите узнать, как сравнивать строки в VBA, щелкните здесь: VBA Compare Strings - StrComp
Если вы хотите узнать, как использовать операторы сравнения, щелкните здесь: Операторы сравнения VBA - не равно и др.
Использование оператора Like для сравнения двух строк
С помощью оператора Like мы можем проверить, начинается ли строка с определенного текста, включает ли его и т. Д. По умолчанию Нравиться Оператор сравнивает символы с помощью двоичного метода. Это означает, что оператор чувствителен к регистру. Если вы хотите сделать регистр нечувствительным, вам нужно поставить Вариант Сравнить текст в верхней части вашего модуля. Используя этот метод, Нравиться оператор считает «S» и «s» одними и теми же символами. В наших примерах мы будем использовать сравнение по умолчанию с учетом регистра.
Если соответствие существует, Нравиться Оператор возвращает True в результате или False в противном случае.
Сначала мы рассмотрим простой пример, в котором мы хотим проверить, начинается ли наша строковая переменная с Мистер. Для этого нужно поставить звездочку (*) в конце совпадающего текста (Мистер*). Вот код:
1234567891011121314 | Sub LikeDemo ()Dim strName As StringDim blnResult As BooleanstrName = "Мистер Майкл Джеймс"Если strName Like "Mr *" ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, еслиКонец подписки |
В этом примере мы хотим проверить, есть ли строка strName начинается с Мистер и верните True или False в переменной blnResult.
Сначала мы устанавливаем значение strName к Г-н Майкл Джеймс:
1 | strName = "Мистер Майкл Джеймс" |
Затем мы используем Нравиться оператор в операторе If:
12345 | Если strName Like "Mr *" ТогдаblnResult = TrueЕщеblnResult = ЛожьКонец, если |
Как strName начинается с Мистер, то blnResult возвращает True:
Изображение 1. Использование оператора Like, чтобы проверить, начинается ли строка с определенных символов.
Использование оператора 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 = TrueЕщеblnResult3 = ЛожьКонец, если |
Не соответствует ни одному прописному символу алфавита:
1234567 | strText4 = "AB7DE"Если strText4 Как "AB [! A-Z] DE" ТогдаblnResult4 = ИстинаЕщеblnResult4 = ЛожьКонец, если |
Соответствие любому символу алфавита (в верхнем или нижнем регистре):
1234567 | strText5 = "ABcDE"Если strText5 Как "AB [A-Za-z] DE" ТогдаblnResult5 = ИстинаЕщеblnResult5 = ЛожьКонец, если |
Когда вы выполните код, вы увидите, что Нравиться оператор возвращает True в blnResult переменные для каждого сравнения:
Изображение 2. Использование оператора Like с разными шаблонами сопоставления