C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Замена в Excel
Olishna
Отправлено: 05.08.2004, 17:28


Не зарегистрирован







Помогите плиз.
Задача такова: нужно Ole-шными методами в Excele заменить точку на запятую. Например, если в ячейки значение 4.45, нужно получить 4,45.
Делаю следующим образом, но почему то не работает?
В чем трабла?????

sheet.OlePropertyGet("Range", "A1:N100").OleProcedure("Replace", ".", ",");

** pasha
Отправлено: 05.08.2004, 17:40


Не зарегистрирован







Возможно дело в формате ячейки.
Если это — число, то там точки никакой и нет, только
действительное, число, точка есть, если только
формат этой ячейки — строка символов.
AVC
Отправлено: 06.08.2004, 08:02


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
Syntax
expression.Replace(What, Replacement, LookAt, SearchOrder, MatchCase, MatchByte)
expression   Required. An expression that returns a Range object.
What   Required String. The string you want Microsoft Excel to search for.
Replacement   Required String. The replacement string.
LookAt   Optional Variant. Can be one of the following XlLookAt constants: xlWhole or xlPart.
SearchOrder   Optional Variant. Can be one of the following XlSearchOrder constants: xlByRows or xlByColumns.
MatchCase   Optional Variant. True to make the search case sensitive.
MatchByte   Optional Variant. You can use this argument only if you’ve selected or installed double-byte language support in Microsoft Excel. True to have double-byte characters match only double-byte characters. False to have double-byte characters match their single-byte equivalents.

Remarks

The settings for LookAt, SearchOrder, MatchCase, and MatchByte are saved each time you use this method. If you don’t specify values for these arguments the next time you call the method, the saved values are used.

Попробуте поиграться с параметром LookAt
Код Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False работает правильно

Olishna
Отправлено: 08.08.2004, 08:13


Не зарегистрирован







Спосибо за советы!!!
Оказывается дело вот в чем:
Если в коде
sheet.OlePropertyGet("Range", "A1:N100").OleProcedure("Replace", ".", ",");
вместо "," указать любой другой символ, то все работает, а вот с запятой не хочет.. sad.gif

Вернуться в Вопросы программирования в C++Builder