Is like function excel

Операторы сравнения чисел и строк, ссылок на объекты (Is) и строк по шаблону (Like), использующиеся в VBA Excel. Их особенности, примеры вычислений.

Операторы сравнения чисел и строк

Операторы сравнения чисел и строк представлены операторами, состоящими из одного или двух математических знаков равенства и неравенства:

  • <   – меньше;
  • <= – меньше или равно;
  • >   – больше;
  • >= – больше или равно;
  • =   – равно;
  • <> – не равно.

Синтаксис:

Результат = Выражение1 Оператор Выражение2

  • Результат – любая числовая переменная;
  • Выражение – выражение, возвращающее число или строку;
  • Оператор – любой оператор сравнения чисел и строк.

Если переменная Результат будет объявлена как Boolean (или Variant), она будет возвращать значения False и True. Числовые переменные других типов будут возвращать значения 0 (False) и -1 (True).

Операторы сравнения чисел и строк работают с двумя числами или двумя строками. При сравнении числа со строкой или строки с числом, VBA Excel сгенерирует ошибку Type Mismatch (несоответствие типов данных):

Sub Primer1()

On Error GoTo Instr

Dim myRes As Boolean

‘Сравниваем строку с числом

  myRes = «пять» > 3

Instr:

If Err.Description <> «» Then

  MsgBox «Произошла ошибка: « & Err.Description

End If

End Sub

Сравнение строк начинается с их первых символов. Если они оказываются равны, сравниваются следующие символы. И так до тех пор, пока символы не окажутся разными или одна или обе строки не закончатся.

Значения буквенных символов увеличиваются в алфавитном порядке, причем сначала идут все заглавные (прописные) буквы, затем строчные. Если необходимо сравнить длины строк, используйте функцию Len.

myRes = «семь» > «восемь» ‘myRes = True

myRes = «Семь» > «восемь» ‘myRes = False

myRes = Len(«семь») > Len(«восемь») ‘myRes = False

Оператор Is – сравнение ссылок на объекты

Оператор Is предназначен для сравнения двух переменных со ссылками на объекты.

Синтаксис:

Результат = Объект1 Is Объект2

  • Результат – любая числовая переменная;
  • Объект – переменная со ссылкой на любой объект.

Если обе переменные Объект1 и Объект2 ссылаются на один и тот же объект, Результат примет значение True. В противном случае результатом будет False.

Set myObj1 = ThisWorkbook

Set myObj2 = Sheets(1)

Set myObj3 = myObj1

Set myObj4 = Sheets(1)

myRes = myObj1 Is myObj2 ‘myRes = False

myRes = myObj1 Is myObj3 ‘myRes = True

myRes = myObj2 Is myObj4 ‘myRes = True

По-другому ведут себя ссылки на диапазоны ячеек. При присвоении ссылок на один и тот же диапазон нескольким переменным, в памяти создаются уникальные записи для каждой переменной.

Set myObj1 = Range(«A1:D4»)

Set myObj2 = Range(«A1:D4»)

Set myObj3 = myObj1

myRes = myObj1 Is myObj2 ‘myRes = False

myRes = myObj1 Is myObj3 ‘myRes = True

Оператор Like – сравнение строк по шаблону

Оператор Like предназначен для сравнения одной строки с другой по шаблону.

Синтаксис:

Результат = Выражение Like Шаблон

  • Результат – любая числовая переменная;
  • Выражение – любое выражение, возвращающее строку;
  • Шаблон – любое строковое выражение, которое может содержать знаки подстановки.

Строка, возвращенная аргументом Выражение, сравнивается со строкой, возвращенной аргументом Шаблон. Если обе строки совпадают, переменной Результат присваивается значение True, иначе – False.

myRes = «восемь» Like «семь»  ‘myRes = False

myRes = «восемь» Like «*семь»  ‘myRes = True

myRes = «Куда идет король» Like «идет»  ‘myRes = False

myRes = «Куда идет король» Like «*идет*»  ‘myRes = True

Со знаками подстановки для оператора Like вы можете ознакомиться в статье Знаки подстановки для шаблонов.

While discussing the limitations of wild card comparisons in the Microsoft Excel’s IF function, I resolved to share my ISLIKE function. It acts like the LIKE operator in SQL. You can’t use the word like as the function name because it’s a reserved word in Visual Basic for Applications (VBA).

The function lets you compare any string to see if it is contained in another string. The default mode is case-insensitive, and the override mode case-sensitive. The optional third element lets you override the default comparison method.

You should remember or note that a number 0 is always evaluated as false, and any other number (negative or positive) is always true. You can put the ISLIKE function in a macro sheet or an Add-in library. I recently posted instructions on how to create your own Add-in library.

Here is the VBA code for the user defined ISLIKE function:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Function ISLIKE( inValue As Variant _
               , hasValue As Variant _
               , Optional caseSensitive As Integer = 0)
 
  ' Define a logical return variable and assign a default value.
  Dim logicReturn As Boolean
  logicReturn = False
 
  If caseSensitive Then
 
    ' Finds a case-insensitive value as a component in a larger value.
    If inValue Like "*" + hasValue + "*" Then
      logicReturn = True
    End If
 
  Else
 
    ' Finds a case-sensitive value as a component in a larger value.
    If UCase(inValue) Like "*" + UCase(hasValue) + "*" Then
      logicReturn = True
    End If
 
  End If
  ' Return the logical value.
  ISLIKE = logicReturn
 
End Function

Line numbers 12 and 19 use the "*", which is equivalent to the regular expression of ".*". I’ve no idea why they made this choice, and it’s not well explained on Microsoft’s web site covering SmartTags.

You can shorten the program and make it slightly less efficient by performing the case sensitive match twice. The following doesn’t rely on nested block IF statements. You also must change the third parameter to a Boolean or the Not operator won’t work correctly.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Function ISLIKE( lookupValue As Variant _
               , containsValue As Variant _
               , Optional caseSensitive As Boolean = 0)
 
  ' Define a logical return variable and assign a default value.
  Dim logicReturn As Boolean
  logicReturn = False
 
  ' Finds a case-insensitive value as a component in a larger value.
  If caseSensitive And _
     lookupValue Like "*" + containsValue + "*" Then
      logicReturn = True
 
  ' Finds a case-sensitive value as a component in a larger value.
  ElseIf Not caseSensitive And _
    UCase(lookupValue) Like "*" + UCase(containsValue) + "*" Then
      logicReturn = True
 
  End If
 
  ' Return the logical value.
  ISLIKE = logicReturn
 
End Function

Somebody asked me, “How this can be useful?” That meant from their perspective, how is it useful beyond a comparison of cell values. A quick example of that additional utility can be demonstrated from an early post. In that post on replacing a VLOOKUP function with a UDF, there’s compound logic used to find the occurrence of a substring in a string. The ISLIKE function can simplify that logic.

Here’s that snippet of the code from that referenced post. The snippet evaluates whether the base string is greater than one character and checks the second character of the string to see if it is a - (minus sign).

58
ElseIf Len(LetterGrades(i)) > 1 And Mid(LetterGrades(i), 2, 1) = "-" Then

You can replace the compound logic with a call to the LIKE function. It would replace line 58 as follows:

58
ElseIf ISLIKE(LetterGrades(i),"-") Then

The logic of the function examines to see if the first parameter contains the second parameter. This is what is meant by like. In the following illustration, you examine if a string contains a substring (or is like a substring). The cell A2 is also assigned a Range name. Range names can increase the readability of your models and functions. All but the last one perform case insensitive comparisons that find whether the substring in cell A2 is found with cell range of the B5:B10. The B10 formula performs a case sensitive match.

Another logic comparison uses grades to see if a minus sign is found in them. The example compares the cell values in A1 and A2 against the B1 and B2 values. Returning true for one and false for the other cases in column C of the respective rows.

Here are the calls to the ISLIKE user defined function. The first one is case-insensitive and the second case-sensitive, but there’s no case sensitivity with a minus sign, -.

Spreadsheet Functions
Cell Formula
C1 =ISLIKE(A1,B1)
C2 =ISLIKE(A2,B2,TRUE)

As always, I hope this helps. If you’ve comments or alternative approaches, please let me know.

I have a scenario where I am using a number of formulas I am comfortable with together and not getting a result. I want to get ANY result where there is a «1» present in a cell. (The 1 is the result of a formula). As well as where the text of a certain column contains an &. («&/OR»)

I have tried a couple formulas

=IF(AND(I1=1,C2="*"&$Q$1&"*"),1," ") 

—In this I have tried to put the & in a cell and refer to it

=IF(I1=1,1," ")   

and then in a new column

=IF(C2="*"&"/"&"*",1," ")

Then combining the results of the two? Is anyone noticing what is wrong with it??

asked Jun 15, 2015 at 10:15

user4242750's user avatar

Wildcards aren’t recognised with comparison operators like =, for example if you use this formula

=A1="*&*"

that will treat the *‘s as literal asterisks (not wildcards) so that will only return TRUE if A1 literally contains *&*

You can use COUNTIF function, even for a single cell, e.g.

=COUNTIF(A1,"*&*")

That will return 1 if A1 contains &, so for your purposes:

=IF(AND(I1=1,COUNTIF($G$1,"*&*")),1,"")

answered Jun 15, 2015 at 11:45

barry houdini's user avatar

barry houdinibarry houdini

45.5k8 gold badges63 silver badges80 bronze badges

2

COUNTIFS can also be used to test for multiple conditions:

=COUNTIFS(A1,"word1",A2,"word2")

word1, word2 may contain wildcard characters if required

Suraj Rao's user avatar

Suraj Rao

29.4k11 gold badges96 silver badges103 bronze badges

answered Feb 8, 2021 at 17:01

Dave Clements's user avatar

=IF(ISERROR(FIND("&",$Q$1))," ",IF(I1=1,1,""))  

or something like

=IF(AND(I1=1,NOT(ISERROR(FIND("&",$G$1)))),1," ")

any variation of that really…

answered Jun 15, 2015 at 10:31

SierraOscar's user avatar

SierraOscarSierraOscar

17.4k6 gold badges41 silver badges68 bronze badges

0

  • #1

For some reason, my brain has passed away. I need a formula that returns one of two answers (that I supply) based on whether words in the MIDDLE of a cell are two certain words. I could do this with conditional formatting if there was an «is like» match, instead of just numeric possibilities like =<> etc.

So, in English, what the formula should SAY is this: «If cell B10 contains the words ‘limited coverage,’ display the text ‘NOTE LIMITED COVERAGE!’ If it doesn’t, display nothing.»

This would be so dang easy if those words were at the BEGINNING of the cell. Oh well. What has happened to my brain? It keeps thinking of things I could do in Access or Showcase, and I’m obviously overlooking something easy.

Help!
This message was edited by invisigirl on 2002-10-22 20:02

What do {} around a formula in the formula bar mean?

{Formula} means the formula was entered using Ctrl+Shift+Enter signifying an old-style array formula.

  • #2

You can use either FIND or SEARCH worksheet functions (Which one depends if you need case sensitive comparison or not)

  • #3

Well, I could, but my users can’t. It has to be something that displays just because they hit enter. The spreadsheet is already set up to give them other results just by entering a number in one cell…this is just an additional message I want to add.

  • #4

=if(iserror(find(«limited coverage», lower(a1),1)),0,1)

This will return 1 if «limited coverage» was found anywhere in cell A1.

Hope this helps.

Questions?

http://www.excelquestions.com

  • #5

Mhmm, lost me a bit here:

=IF(ISNUMBER(FIND(«mytext»,A1)),»I found it»,»»)

would work just like you describe…

  • #6

Juan, thanks!
There aren’t any numbers in the cell I’m referencing. It begins with a word or words, but the words I’m looking for will be somewhere in the middle. What would I substitute for your suggestion in that case?

  • #7

Nothing, the FIND function (As well as the SEARCH) look for the first parameter ANYWHERE in the second parameter, if it finds it, it returns the position that it found it.

  • #8

Thanks so much! I had just taken out the ISNUMBER part, which left me with an error message on false results. Put it back in and it works fine.

Guess that’s why I have so much trouble in Excel — my brain keeps rejecting the terminology. :)

Thanks again, Juan. Happy day!

Ekim

Well-known Member


  • #9

These work with your search string in D1.

1. Case sensitive:

=IF(FIND($D$1,A1)),»I found it»,»»)

2. Non-case sensitive:

=IF(SEARCH($D$1,A1),»I found it»,»»)

Regard,

Mike

  • #10

On 2002-10-23 04:53, Ekim wrote:
These work with your search string in D1.

1. Case sensitive:

=IF(FIND($D$1,A1)),»I found it»,»»)

2. Non-case sensitive:

=IF(SEARCH($D$1,A1),»I found it»,»»)

Mike,

Without an ISNUMBER test, the above formulas will error out, so you will never get «».

Functions like SEARCH, FIND, and MATCH return a number when they succeed, otherwise an error value. That’s why it is often more appropriate to use an ISNUMBER test instead of an ISERROR, ISERR, or ISNA test with these functions.

Aladin

rollis13

  • Введение в VBA Like

Введение в VBA Like

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

В VBA Like у нас есть некоторые условия, на которых мы можем определить, что нам нужно получить и как нам нужно заполнить пространство пропущенных пустых слов.

  • Вопросительный знак (?) — этим мы можем сопоставить только один символ из строки. Предположим, у нас есть строка «TAT» и шаблон «T? T», тогда VBA Like вернет TRUE. Если у нас есть строка «TOILET» и шаблон по-прежнему «T? T», тогда VBA Like вернет FALSE.
  • Звездочка (*) — этим мы можем сопоставить 0 или более символов. Предположим, у нас есть строка «L ** K», тогда VBA Like вернет TRUE.
  • (Char-Char) — этим мы можем сопоставить любой отдельный символ в диапазоне Char-Char.
  • (! Char) — этим мы можем сопоставить любой отдельный символ, но не в списке.
  • (! Char-Char) — этим мы можем сопоставить любой отдельный символ, но не в Char-Char.

Как использовать функцию VBA Like в Excel?

Мы научимся использовать функцию VBA Like на нескольких примерах в Excel.

Вы можете скачать этот шаблон VBA Like Excel здесь — Шаблон VBA Like Excel

Пример №1 — VBA Like

Чтобы узнать, является ли доступная строка ИСТИНА или ЛОЖЬ для VBA Как и прежде всего, нам нужен модуль. Для этого,

Шаг 1: Перейдите в меню « Вставка» и выберите « Модуль» из списка, как показано ниже.

Шаг 2: Теперь в открывшемся окне Module в VBA напишите подкатегорию VBA Like, как показано ниже.

Код:

 Sub VBA_Like () End Sub 

Шаг 3: Теперь сначала мы определим переменную A как String, как показано ниже. Здесь мы можем использовать переменную Long, так как она также позволяет хранить в ней любое текстовое значение.

Код:

 Sub VBA_Like () Dim A As String End Sub 

Шаг 4: Далее мы назначим слово переменной A. Давайте рассмотрим это слово как «LIKE».

Код:

 Sub VBA_Like () Dim A As String A = "Like" End Sub 

Шаг 5: Теперь с помощью цикла If-End If мы создадим условие VBA Like.

Код:

 Sub VBA_Like () Dim A As String A = "Like", если End End End End 

Мы будем использовать приведенный выше код и в следующем примере напрямую.

Шаг 6: Теперь в цикле If-End If записать условие как переменную A, например «L? KE», является ИСТИННЫМ условием, а затем дать нам « Да» в окне сообщения или же « Нет» в окне сообщения для ЛОЖЬ .

Код:

 Sub VBA_Like () Dim A As String A = "Like" Если A Like "L? KE", то MsgBox "Yes" Else MsgBox "No" End If End Sub 

Мы сохранили знак вопроса на второй позиции. Но это может быть сохранено где угодно в целой строке.

Шаг 7: Теперь скомпилируйте код и запустите его, нажав кнопку Play, которая доступна под строкой меню.

Мы получим окно сообщения как НЕТ. Это означает, что слово, выбравшее «LIKE» в переменной A, может иметь другие алфавиты вместо знака вопроса и вместо «I».

Пример № 2 — VBA Like

В этом примере мы будем реализовывать Asterisk (*)

Шаг 1: Теперь мы будем использовать ту же структуру кода, которую мы видели в примере 1, с тем же словом « LIKE ».

Код:

 Sub VBA_Like2 () Dim A As String A = "LIKE" If End If End Sub 

Шаг 2: Поскольку мы знаем, что с Asterisk у нас есть совпадение 0 или более символов из любой строки. Таким образом, в цикле If-End If мы напишем: если VBA Like соответствует «* Like *», это TRUE, тогда мы получим сообщение как Yes, иначе мы получим No, если это FALSE .

Код:

 Sub VBA_Like2 () Dim A As String A = "LIKE" Если A Like "* Like *", то MsgBox "Yes" Else MsgBox "No" End If End Sub 

Шаг 3: Снова скомпилируйте полный код и запустите его. Мы получим сообщение как НЕТ, потому что VBA Like не соответствует ни одному алфавиту, кроме определенной строки « Like ».

Шаг 4: Теперь, если мы изменим строку A с «Like» на «Like Wise» и попытаемся сопоставить любую букву из строки, скажем, это «W» в звездочке, тогда что мы получим?

Как сказано выше, мы использовали «LIKE WISE» в качестве нашей новой строки.

Код:

 Sub VBA_Like2 () Dim A As String A = "LIKE WISE" Если A Like "* W *", то MsgBox "Да", иначе MsgBox "Нет" End If End Sub 

Шаг 5: Теперь скомпилируйте код и запустите его снова. Мы получим сообщение как ДА. Это означает, что VBA Like может соответствовать любому алфавиту из нашей строки «LIKE WISE».

Таким же образом, если мы сопоставим любое другое письмо от «LIKE WISE», мы можем получить те же результаты.

Пример № 3 — VBA Like

В этом примере мы увидим, как Char-Char работает в сопоставлении строк символов.

Шаг 1: Для этого мы также будем использовать тот же кадр кода, который мы видели в примере 2 для определенной переменной A как «LIKE WISE».

Код:

 Sub VBA_Like4 () Dim A As String A = "LIKE WISE" If End If End Sub 

Шаг 2: В цикле if-End If напишите условие VBA Like, совпадающее с буквами от I до K ( в Asterisk и Char ), тогда оно будет TRUE и даст нам сообщение как YES . Если нет, то это будет ЛОЖЬ, и мы получим сообщение как НЕТ .

Код:

 Sub VBA_Like4 () Dim A As String A = "LIKE WISE" Если A Like "* (IK) *" Тогда MsgBox "Да" Иначе MsgBox "Нет" End If End Sub 

Шаг 3: Снова скомпилируйте код и запустите его. Мы увидим, что VBA Like способен сопоставлять символы от буквы I до K и дал нам сообщение как YES .

Плюсы и минусы VBA Like

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

То, что нужно запомнить

  • Мы можем сравнивать и сопоставлять только строки. Любые другие переменные, такие как целые числа, нельзя использовать double.
  • Не рекомендуется записывать макрос на VBA Like. Поскольку мы не знаем никакой функции Excel на нем. Кроме того, выполнение этого процесса другими способами может привести к получению неверных результатов матча.
  • Хотя VBA Like используется очень редко, но вид вывода, который он выдает, может быть не совсем точно задан другими функциями и командами того же типа.
  • Сохранить файл в макросе Включить только формат файла Excel. Этот формат в основном используется при создании любого макроса.

Рекомендуемые статьи

Это руководство к VBA Like. Здесь мы обсудим, как использовать функцию Excel VBA Like вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. VBA InStr объяснил с помощью примеров
  2. Целочисленный тип данных VBA
  3. Как выбрать ячейку, используя код VBA?
  4. Транспонировать диапазон в VBA

Кроме сравнения строк с использованием операторов «равно», «больше» и «меньше», в языке Visual Basic for Applications (VBA) доступен оператор Like, который можно использовать только для сравнения строк.  

Сравнение строки с шаблоном

Оператор Like выполняет особый тип операции сравнения строк, определяя совпадает ли строка с заданным образцом (шаблоном). Этот оператор используется также для поиска в текстовой информации слов, фраз и определенных символов, совпадающих с заданным шаблоном. Такой тип поиска часто называют нечетким поиском.

Специальные символы совпадения с образцом для оператора Like

Образец, с которым должна сравниваться строка, задается при помощи различных специальных символов, представленных в таблице ниже.

Специальные символы совпадения с образцом для оператора Like

Использование символов совпадения рассмотрим на примере процедуры, удаляющей всю строку активного рабочего листа, при нахождении в этой строке ячейки с искомым текстом (шаблоном).

Если Shablon=»*Круг 2#*», то на листе будут удалены все строки, в которых найдутся слова «Круг 20», «Круг 25» и так далее.

Если Shablon=»S*e», то на листе будут удалены все строки, в ячейках которых будут найдены слова «Sadie», «Salone», «Sophie», «Steve» и так далее.

Если Shablon=»P???y», то удалены будут строки со словами «Penny», «Persy», «Patty» и так далее.

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

Если Shablon=»bi[dg]», то строки со словами в ячейках «bid» и «big» будут удалены, а со словами «bit» и «bin» останутся нетронутыми.

Если же Shablon=»bi[!dg]», то результат будет обратным.

Квадратные скобки можно также использовать для указания диапазона символов, совпадение или несовпадение с которыми необходимо, например Shablon=»ci[a-f]» или Shablon=»ci[!a-f]». В таких случаях диапазоны необходимо указывать от наименьшего до наибольшего символа. Квадратные скобки, в которых ничего не заключено — VBA игнорирует.

Квадратные скобки используются и в тех случаях, когда необходимо сами специальные символы сделать частью шаблона. Например, для того чтобы найти все строки, заканчивающиеся вопросительным знаком, необходимо задать шаблон следующим образом: Shablon=»*[?]».

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

Если Shablon=»*g[-]*», то совпадениями будут считаться выражения «big-headed», «plug-ugly», «tag-along» и так далее.

Результат сравнения строк VBA-оператором Like зависит от инструкции Option Compare. При двоичном сравнении оператор различает буквы верхнего и нижнего регистра, а при текстовом — нет.

Другие материалы по теме:

Оператор Like VBA

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

Оператор «LIKE» — самый недоиспользуемый оператор, несмотря на прекрасное использование. Я не видел много людей, которые использовали бы этот оператор в полной мере в своем кодировании. Фактически, я один из тех, кто не использует этот оператор достаточно часто. Оператор «VBA LIKE» позволяет нам сопоставить образец строки с полной строкой. Используя оператор VBA LIKE, мы можем сравнить две строки с заданным шаблоном. Мы можем проверить, содержит ли строка подстроку в VBA, или мы также можем проверить, содержит ли строка какой-либо определенный формат. Если шаблон соответствует строке, оператор VBA LIKE возвращает TRUE или FALSE.

При сопоставлении строк нам нужно использовать подстановочные знаки для указанного шаблона. Ниже приведены подстановочные знаки, которые мы используем в операторе VBA LIKE.

  • Вопросительный знак (?): Используется для сопоставления любого символа в строке. Например, если у нас есть строка «CAT», а шаблон — «C? T», тогда оператор VBA LIKE возвращает TRUE. Если строка — «CATCH, а шаблоны -« C? T », тогда оператор VBA LIKE возвращает FALSE.
  • Звездочка (*): соответствует нулю или большему количеству символов. Например, если строка имеет значение «Хорошо», а шаблон — «G ** d», оператор VBA LIKE возвращает значение ИСТИНА.
  • Скобки ([]): соответствует любому одиночному символу, указанному в скобках.
  • [Char-Char]: соответствует любому одиночному символу в диапазоне Char-Char.
  • [! Chars]: соответствует любому одиночному символу, отсутствующему в списке.
  • [! Char-Char]: соответствует любому одиночному символу, не входящему в диапазон Char-Char.

Примеры оператора VBA LIKE

Давайте теперь посмотрим на некоторые примеры оператора LIKE в VBA.

Вы можете скачать этот шаблон VBA Like Excel здесь — Шаблон VBA Like Excel

Пример №1 — С вопросительным знаком

Код:

 Sub QuestionMark_Example1 () Dim k As String k = "Good" If k Like "Go? D" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

В приведенном выше коде мы предоставили строку как «Хорошо», а шаблон — «Go? D». Поскольку вопросительный знак может соответствовать одному символу, результат будет отображаться как «Да».

Теперь поменяю строку на «Доброе утро».

Код:

 Sub QuestionMark_Example1 () Dim k As String k = "Доброе утро" Если k Like "Go? D" Тогда MsgBox "Yes" Else MsgBox "No" End If End Sub 

В этом случае будет показано «Нет», потому что мы добавили в строку еще одно слово, то есть «Утро». Чтобы соответствовать любому количеству символов, нам нужно использовать звездочку.

Пример # 2 — Со звездочкой

Код:

 Sub QuestionMark_Example2 () Dim k As String k = "Доброе утро" Если k Like "* Good *" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

В приведенном выше примере я добавил две звездочки до и после символа «* Хорошо *». Это будет соответствовать слову «Хорошо» в строке «Доброе утро» и вернет «Да».

Пример № 3 — Со скобками []

Код:

 Sub QuestionMark_Example3 () Dim k As String k = "Доброе утро" Если k Like "* [M] *" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

Приведенный выше код соответствует единственной букве, указанной в скобке «M», и возвращает ответ «Да».

Пример №4 — Со скобками и алфавитами [AZ]

Код:

 Sub QuestionMark_Example4 () Dim k As String k = "Доброе утро" Если k Like "* [AD] *" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

Выше я упомянул символы для соответствия от A до D.

Это возвращает «Нет» , потому что нет никаких символов от А до D в строке «Доброе утро» .

Теперь я изменю шаблон на [AH]

Код:

 Sub QuestionMark_Example4 () Dim k As String k = "Доброе утро" Если k Like "* [AH] *" Then MsgBox "Yes" Else MsgBox "No" End If End Sub 

Это вернет «Да», потому что от A до H у нас есть символ «G» в строке «Доброе утро».

Таким образом, мы можем использовать оператор VBA «LIKE» для сопоставления любой строки из шаблона с символами подстановки.

Понравилась статья? Поделить с друзьями:
  • Is like excel formula
  • Is like a sight word
  • Is like a function word
  • Is likable a word
  • Is lightweight one word