Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2013, 15:11   #1
xlebobulka
 
Регистрация: 23.07.2013
Сообщений: 6
По умолчанию Регулярное выражение

Ребят, помогите, пожалуйста, составить регэксп на VBA!
Допустим, мне нужно, чтобы он учитывал три слова кот, кит, слон. В расширении файла (кстати, да, суть в том, что он будет использоваться для поиска файлов, содержащих в любом месте названия одно из трёх слов) может быть любое экселевское расширение.
Просто в масках я писала *кот*.x*, у меня их было три и всё работало.

Накалякала objRegExp.Pattern = "(кот*|кит*|слон*.x*)",но оно вроде как не учитывает мой x*!
Скорректируйте меня, пожалуйста!
Спасибо=)

Уже поняла, что звёздочки не нужны!

Последний раз редактировалось xlebobulka; 31.07.2013 в 15:22.
xlebobulka вне форума Ответить с цитированием
Старый 01.08.2013, 17:47   #2
xlebobulka
 
Регистрация: 23.07.2013
Сообщений: 6
По умолчанию

Меня все игнорят, но вдруг...

Предыдущий вопрос снят)
Теперь другая проблема.
Можно ли как то присвоить паттерну значение из переменной?
у меня дебаггер говорит что паттерн пустой, хотя пишу objRegExp.Pattern = strList(Index)
стрлист точно не пустой, в чём может быть проблема?
xlebobulka вне форума Ответить с цитированием
Старый 01.08.2013, 18:39   #3
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Вы бы пример выложили в Экс-файле - давно бы решения были. А гадать, что у Вас на уме и что в файле, не очень интересно.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 02.08.2013, 06:16   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если переменная strList(Index) содержит значение, которое полностью удовлетворяет синтаксису метасимволов объекта RegExp, то попробуйте записать так:
Код:
objRegExp.Pattern = Chr(34) & strList(Index) & Chr(34)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 02.08.2013, 10:59   #5
xlebobulka
 
Регистрация: 23.07.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Если переменная strList(Index) содержит значение, которое полностью удовлетворяет синтаксису метасимволов объекта RegExp, то попробуйте записать так:
Код:
objRegExp.Pattern = Chr(34) & strList(Index) & Chr(34)
не сработало..
strFileNameList(0) = "[кот]([a-z]|[0-9]|\s|[.]).*[x]+.+"
в переменной такое значение, проверяла на калькуляторе его пригодность - всё подходит
xlebobulka вне форума Ответить с цитированием
Старый 02.08.2013, 18:32   #6
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Без файла трудно понять проблему и гадать можно долго.
Если strList(Index) не пусто, а в Pattern все же попадает пустая строка - значит strList(Index) все же не содержит значения. Либо по пути где-то обнуляется, либо объявлен этот массив неверно. Чудес не бывает и не может быть и strList(Index) не пуст и Pattern пуст, которому из этого strList(Index) значение присваивается.
Проверьте, нет ли у Вас игнорирования ошибок: On Error Resume Next. Если есть - уберите и посмотрите, мало ли где ругаться начнет VBE.
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение iLnes Общие вопросы .NET 3 05.12.2012 16:01
Регулярное выражение MissSMITT PHP 0 01.12.2012 19:00
регулярное выражение Alexandr555 Общие вопросы Delphi 3 07.04.2012 23:18
Регулярное выражение art-programs Общие вопросы Delphi 2 21.02.2012 11:58
Регулярное выражение Arassir PHP 4 16.03.2011 09:42