Оператор VBA Like

Like – оператор в VBA, это оператор сравнения, который сравнивает заданную строку в качестве аргумента с набором строк и сопоставляет с образцом, если образец совпадает, то полученный результат будет истинным, а если образец не совпадает, то полученный результат будет ложным, это встроенный оператор в VBA.

Оператор является одним из самых малоиспользуемых, несмотря на его замечательное применение. Like позволяет нам сопоставить шаблон строки с полной строкой. Используя его, мы можем сравнить две строки по заданному шаблону.

При сопоставлении строк нам необходимо использовать символы подстановки в заданную нами шаблонную форму. Ниже приведены символы подстановки, которые используются в VBA:

Вопросительный знак (?): Используется для поиска любого одного символа из строки. Например, если у нас есть строка “Кот”, а шаблон – “К?т”, то оператор Like возвращает TRUE. Если строка – “Кр?т”, а шаблон – “К?т”, то оператор Like возвращает FALSE.
Звездочка (*): Совпадает с нулем или более символов. Например, если строка – “Excel”, а шаблон – “E*el”, оператор возвращает TRUE.
Скобки ([]): Совпадает с любым одним символом, указанным в скобках.
Решетка (#): Совпадает с любой цифрой (0-9).

Пример использования шаблона

Пример №1. Поиск цифр

Допустим, мы хотим отметить все ячейки, содержащие в начале значения цифру и отмечать в соседней ячейке 1, если ячейка удовлетворяет этому условию.

Оператор Like

Для решения этой задачи следует написать простой код:

Sub Exmpl()
    Dim myC As Range
    For Each myC In Range(Cells(1, 1), Cells(4, 1))
        If myC Like "#*" Then myC.Offset(, 1).Value = 1
    Next myC
End Sub

В этом примере используется шаблон “#*”, # обозначает, что первый символ должен быть цифрой, а * означает, что после первого символа могут следовать любое количество любых символов.

Пример №2. Поиск по скобкам и алфавиту [А-Я]

Допустим, нам нужно узнать, есть ли буквы К, Л, М, Н, О в сообщении “Привет!”. Если буквы есть, то мы выведем на экран сообщение “Да”, иначе появится сообщение “Нет”. Код для этой задачи будет следующим:

Sub Exmpl2()
    Dim sMsg As String
    sMsg = "Привет!"
    If sMsg Like "*[К-О]*" Then
        MsgBox "Да"
    Else
        MsgBox "Нет"
    End If
End Sub

Шаблон “*[К-О]*” читается так: после любого количества символов (даже если символов не будет вовсе), стоит буква алфавита К, Л, М, Н, О (вне зависимости от регистра), после буквы следует любое количество любых символов.


Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Добавить комментарий