![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с Excel
Lena © (2004-07-27 12:45:00)Добрый вечер всем. Помагите, пожалуйста, я уже не знаю что делать. Есть такой код:
for i:=1 to CountSheets do
begin
if (pos('RUB',value[i-1])<>0) or (pos('VAL',value[i-1])<>0) then
begin
WorkBk := XLApp.WorkBooks[1];
WorkSheet := WorkBk.WorkSheets[i];
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
и дальше работаю с данными странички (стандартный код, видела его на сайтах 10-и...) но проблема в том, что мне надо бежать по нескольким листам и когда доходит до активации последней ячейки данного листа, на втором листе выскакивает ошибка:
метод Activate из класса Range завершен не верно. Т.е. интуитивно понятно, что перед переходом на следующий лист, нужно снять активацию с текущего, но как это сделать не знаю. Помогите, пожалуйста....:-)
Digitman (2004-07-27 14:30:00) [1]
> Lena
здрасть ...
WorkSheet[такой-то].Activate
только вот нафига тебе это для тек.задачи - опять неясно
Lena (2004-07-27 14:21:00) [2]а можно еще вопрос, как сделать лист активным? :-)
Digitman (2004-07-27 14:14:00) [3]WorkSheet.UsedRange.SpecialCells(xlCellTypeLastCell, EmptyParam).Address
Lena (2004-07-27 13:50:00) [4]а какие, я просто не знаю и поэтому спрашиваю...
Digitman (2004-07-27 13:48:00) [5]а причем здесь Activate ?
для этого иные спецметоды есть у объекта WorkSheet
Lena (2004-07-27 13:32:00) [6]размер не листа, а координаты не пустой последней ячейки, мне надо данные перетащить в Delphi.
Digitman (2004-07-27 13:27:00) [7]
> надо на каждом листе знать его размер
а чего его знать ? строк - 64к, столбцов - 256 ...
Lena (2004-07-27 13:22:00) [8]я пользуюсь аналогичным кодом:
// Чтобы знать размер листа (WorkSheet), т.е. количество строк и количество
// столбцов, мы активируем его последнюю непустую ячейку
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
// Получаем значение последней строки
X := XLApp.ActiveCell.Row;
// Получаем значение последней колонки
Y := XLApp.ActiveCell.Column;
мне надо на каждом листе знать его размер , т.е. кол-во строк и столбцов, но когда я перехожу на второй лист и пытаюсь узнать размер, путем активизации мне и выдается ошибка...
Digitman (2004-07-27 13:14:00) [9]тебе зачем ячейку активизировать-то ? расчеты какие-то сделать на каждом из листов ? ну так для этого совершенно необязательно активизировать что-то ..
а уж если таки нужно, то перед активизацией ячейки следует активизировать раб.лист, которому активизируемая ячейка принадлежит