2016-08-19 7 views
-2

Существует код, который я использую для поиска определенных слов в строке VBA. В настоящее время я использую Instr:Поиск определенного слова в строке VBA

tag1 = InStr(1, dish, keyword, vbTextCompare) 

Однако задача состоит в том, что поиск сравнивающие строки, а не слова. . Если я ищу «яйца» в качестве ключевого слова в строке - Баклажаны Пицца, он возвращает истинное значение.

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

+1

'.Find'? Запишите макрос или стек stackoverflow. –

+2

Вы знаете Google?!?! если вы ищете «excel vba найти точное слово в строке», то 3-й результат - это возможный способ решить ваш ploblem http://stackoverflow.com/questions/28100969/excel-exact-word-matching – Fabrizio

ответ

0

Вы также можете использовать регулярные выражения для достижения этой цели в VBA.

Посмотрите конкретно на операторы^и $, чтобы принудительно выполнить полное совпадение слов.

Итак, в вашем случае что-то вроде^Egg $, поскольку шаблон должен делать то, что вы хотите.

Смотрите здесь какую-то хорошую помощь по этому вопросу: How to use Regular Expressions (Regex) in Microsoft Excel both in-cell and loops

+0

Ответ выше этого не является верный. Я не могу прокомментировать это. Это вернет 1, то есть найдет экземпляр Egg, который OP пытается НЕ найти –

0

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

Debug.Print UBound(Split("Eggplant Pizza", "Egg")) 

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

Смежные вопросы