Страницы: 1
RSS
Replace и знаки подстановки
 
В справке по функции Replace отсутствует явное указание на возможность (невозможность) использования в качестве аргумента Find подстановочных знаков.  
Практические попытки (- не пытки)положительного ответа не дали.  
Следует ли утешиться известной фразой, что отрицательный результат тоже результат?  
Или такая возможность есть?  
s = "$J$10,$J$14,$J$21,$J$27,$J$29,$J$32"  
r = Replace(s, "?", "") 'не работает  
r = Replace(s, "*", "") 'не работает  
r = Replace(s, "[ABCDEFGHIJKLMNOPQRSTUVWXYZ]", "") 'не работает
Была мысль, как Чапаев рубануть с плеча, обойтись без циклов. Но видимо как и он не доплыву до берега:(
 
для * и ? возможность есть - используйте WorksheetFunction.Substitute  
маски вида [abcd] можно использовать только в операторе Like
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=ikki}{date=26.05.2011 10:16}{thema=}{post}для * и ? возможность есть - используйте WorksheetFunction.Substitute  
маски вида [abcd] можно использовать только в операторе Like{/post}{/quote}
 
можно вместо ? и * chrw(63) и chrw(42) использовать, как вариант...
 
таким же образом через цикл можно и буквы алфавита... как вариант :)
 
r = WorksheetFunction.Substitute(s, "$", "") 'работает но это не знак подстановки  
r = WorksheetFunction.Substitute(s, "$?", "") 'не работает  
r = WorksheetFunction.Substitute(s, "?", "") 'не работает  
r = WorksheetFunction.Substitute(s, "*", "") 'не работает  
r = WorksheetFunction.Substitute(s, "$*", "") 'не работает  
re: Диана. Циклом не по Чапаевски.  
r = WorksheetFunction.Substitute(s, ChrW(42), "")  'не работает  
re: The_Prist. Погружаюсь в RegExp.
 
{quote}{login=k61}{date=26.05.2011 10:47}{thema=re: ikki}{post}r = WorksheetFunction.Substitute(s, "$", "") 'работает но это не знак подстановки  
r = WorksheetFunction.Substitute(s, "$?", "") 'не работает  
r = WorksheetFunction.Substitute(s, "?", "") 'не работает  
r = WorksheetFunction.Substitute(s, "*", "") 'не работает  
r = WorksheetFunction.Substitute(s, "$*", "") 'не работает  
re: Диана. Циклом не по Чапаевски.  
r = WorksheetFunction.Substitute(s, ChrW(42), "")  'не работает  
re: The_Prist. Погружаюсь в RegExp.{/post}{/quote}  
 
s = replace(s, chrw(43), "")
 
42 т.е., сорри
 
r = Replace(s, ChrW(42), "") 'не работает
 
А как должно бы сработать со звёздочкой? Например,  
r = Replace("Вася", "*", "")  
КАКОЙ символ менять? :-)
 
работает, не работает, если там нет звездочки.
 
Сорри, ошиблась :)
 
мда...  
The_Prist абсолютно прав.  
а я с Word'ом, что ли, попутал... :(  
или таки с ПОИСК()
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
кстати, тоже надо бы изучить RegExp.  
вот, натолкнулся на неплохую коллекцию готовых паттернов: http://www.regexlib.com/DisplayPatterns.aspx  
 
или где-нибудь ещё больше и лучше есть? :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=Юрий М}{date=26.05.2011 11:11}{thema=}{post}А как должно бы сработать со звёздочкой? Например,  
r = Replace("Вася", "*", "")  
КАКОЙ символ менять? :-){/post}{/quote}  
В Вашем примере менять все символы.  
Но Ваш пример не отражает конкретной потребности оставить в переменной только числа.
 
Объект RegExp - всемогущ!  
Добавил его изучение в список дел которые должен сделать каждый мужчина в течении жизни (посадить печень, построить тёщу, вырастить пузо).  
Стою на пороге открытия.  
Прошу не расходиться. После посадки картошки, поделюсь.
Страницы: 1
Читают тему
Наверх