|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
26.12.2007, 18:50 | #1 |
Пользователь
Регистрация: 22.11.2007
Сообщений: 79
|
Бага или фича функции Replace Function (VBA)?
Кажется, столкнулся с багой при выполнении функции Replace (в VBA, не в ячейках).
Так, в описании синтаксиса находим: Replace(expression, find, replace[, start[, count[, compare]]]) expression - Required. String expression containing substring to replace. - Это ГДЕ ищем. find - Required. Substring being searched for. - Это ЧТО ищем. replace - Required. Replacement substring. - Это ЧЕМ заменяем. start - Optional. Position within expression where substring search is to begin. If omitted, 1 is assumed. - Вот тут вопрос. По моей логике - это позиция, с которой начинать поиск. И только. count и compare сейчас опустим. Теперь, по моей логике, функция: Код:
По факту же, получается выражение "412A", т.е. поиск и замена произошли, но еще произошло обрезание, выдалась только часть строки, начиная с места поиска. Нафига, собственно?? Я проверял на русской и английской версии Excel 2003. Проверьте у себя, пожалуйста. Или все-таки фича? |
26.12.2007, 20:20 | #2 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
Если написать так:
Код:
Т.е. при начале замены с i-го символа, все символы до i-го не выводятся. Не знаю баг это, или так это и было задумано, но так есть. |
26.12.2007, 20:33 | #3 |
Форумчанин
Регистрация: 21.08.2007
Сообщений: 292
|
Посмотрите Help до конца, там внизу ремарка
Remarks: The return value of the Replace function is a string, with substitutions made, that begins at the position specified by start and and concludes at the end of the expression string. It is not a copy of the original string from start to finish. P.S. Может как-то так? Код:
Последний раз редактировалось Pavel55; 26.12.2007 в 20:48. |
27.12.2007, 11:26 | #4 |
Пользователь
Регистрация: 22.11.2007
Сообщений: 79
|
Павел, спасибо, но это принципиально иное: я делаю процедуру посимвольной обработки строки. Встретился и долго не мог понять, в чем ошибка... Ладно, придется делать конкатенацию с частью строки до позиции поиска.
zetrix, угу... |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Что же это, бага vs2005, или VC++ 6.0? | evil_factory | Visual C++ | 1 | 24.07.2008 22:30 |
InttoiHex function | GAGARIN-NEW | Компоненты Delphi | 4 | 27.03.2008 20:21 |
function procedure | Toxa | Microsoft Office Access | 1 | 28.11.2007 18:32 |
function WinExecAndWait | malevich | Общие вопросы Delphi | 4 | 05.02.2007 19:00 |