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

 
Выделение диапазона в Excel, выден диапазоны по кардинатам ячеек
Zimus
Отправлено: 02.10.2003, 07:15


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







Добрый день!

Народ подскажите как можно из программы объединять ячейки в Excel
я что то не могу найти как можно выделить диапазон имея
номер строки и колонки начальной ячейки и номер строки и
колонки конечной ячейки.
т.е. если пишу
WorkSheets.OlePropertyGet("Range","A1:B2");
то все работает нормально но у меня только номера столбцов
я пытался вот так
WorkSheets.OlePropertyGet("Range","R1C1:R2C2");
но вылазет ошибка.

Подскажите если кто знает как выделять диапазоны по кардинатам ячеек. sad.gif
Очень надо! Плиззз.
Borgir
Отправлено: 02.10.2003, 08:53


Дежурный стрелочник

Группа: Участник
Сообщений: 48



Что-то я не понял. Ведь "A1:B2" — это и есть диапазон ячеек. А1 — начальная, а В2 — конечная. Так что же тогда автору надо?
Zimus
Отправлено: 02.10.2003, 09:23


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







мне надо имея номер колонки и номер строки начала диапазона и номер колонки и строки конца диапазона выделить диапазон

я не знаю какая буква колонки я знаю только номер
Borgir
Отправлено: 02.10.2003, 12:05


Дежурный стрелочник

Группа: Участник
Сообщений: 48



Так преобразуй номер колонки в соответствующую букву.
Самое первое решение, приходящее в голову, это если колонок будет не больше 26, то создай строку со всеми буквами попорядку

AnsiString aa="ABCDEF.....XYZ";
а затем находи нужную букву:
aa.SubString(Col,1);

где Col — номер колонки (нумерация с 1)

Хотя наверно существуют и более изящные решения
Zimus
Отправлено: 02.10.2003, 12:25


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







такой вариант конечно интересен wink.gif но не приемлем т.к. количество колонок в ряде случаев будет достигать 100 и более biggrin.gif
Borgir
Отправлено: 03.10.2003, 05:48


Дежурный стрелочник

Группа: Участник
Сообщений: 48



Ну тогда может кто еще придумает другой вариант. Главное, что проблема не в EXCEL'е. А перевести число в буквы, это уже дело техники. А вообще можно попробовать в EXCEL'е в настройках поставить на закладке "Общие" галочку "Стиль ссылок R1C1", может при этом можно будет к ячейкам обращаться по номерам строки и столбца.
Zimus
Отправлено: 03.10.2003, 06:55


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







Ну вот и решение созрело

Cell=WorkSheets.OlePropertyGet("Range",WorkSheets.OlePropertyGet("Cells",Coln,Rown),WorkSheets.OlePropertyGet("Cells",Colc,Rowc));

Coln, Rown, Colc, Rowc — енто переменные int

----------------------------------------------------
если долго мучится что нибудь получится biggrin.gif

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