Страницы: 1
RSS
VBA: оператор Like - не получается использовать квадратные скобки для поиска или исключения значений
 
Всем здравствуйте!  :)

Помогите мне, пожалуйста, разобраться с оператором Like. Я поняла, как искать значения и исключать их (с помощью not), не используя квадратные скобки. А вот с ними никак не получается...

В файле я описала несколько примеров, и когда я пытаюсь вставить искомое значение в квадратные скобки, то при выполнении кода не происходит вообще ничего.
Просто хотела попробовать все варианты, и с [], и без.
 
Код
If Cells(i, "A") Like "*[Дд]ом*" Then Cells(i, "D").Value = "+"
 
Код
If LCase(Cells(i, "A")) Like "*дом*" Then Cells(i, "D").Value = "+"
 
RAN, спасибо за вариант, но я хотела с квадратными скобочками разобраться. Зато LCase узнала)))

Kuzmich, спасибо! У меня получилось таким образом найти совпадение, но исключить с восклицательным знаком - нет...  :(  У меня даже не получилось одну букву исключить
Код
"*[!Д]*"
. Покажите, пожалуйста, как это делается?

Я в своем макросе воспользовалась таким способом, он сработал как нужно:

Код
If Cells(i, "A") Like "*Дом*" And Not Cells(i, "A") Like "*озер*" Then Cells(i, "h").Value = "+"
 
может нужно что-то вроде
Код
"*Дом*[!зер]?"
а вообще стоит смотреть в сторону регулярных выражений
Соблюдение правил форума не освобождает от модераторского произвола
 
В справке про like отлично разжёвано.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, я читала ее. И делала все так, как в образце. Ну по крайней мере различий я не увидела))
 
buchlotnik, спасибо! Я почитаю об этих выражениях. Пока ничего об этом не знаю.
 
Код
Sub test()
   Dim v
   For Each v In Array("Саша", "Даша", "Маше")
      Debug.Print v, LCase(v) Like "[!д]аш*"
   Next v
End Sub
Владимир
 
Владимир, спасибо! Всё таки мне кажется, что вариант без квадратных скобок проще :-)
Страницы: 1
Наверх