|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Переключаться между листами!
Добрый день программерам.
Подскажите как переключаться между листами? В моем идиётском учебнике этого нет. Измучался. То есть я заношу значения в какие то ячейки потом нажимаю button и чтоб эксель перескочил на другой лист и можно было туда данные вносить.. Чет никак. Ну и новые создавать.. |
#2
|
|||
|
|||
Есть у кого толковая книга по программированию excel?
Везде не до писывают недоговаривают. Мне в подробностях. |
#3
|
||||
|
||||
В большинстве случаев помогает простой финт. Запустить запись макроса в экселе, понажимать нужные кнопки,элементы и посмотреть что эксель наваял при этом в макросе. Аналогичные свойства и объекты вызвать из дельфи.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
А "стандартный" способ не подойдет ?
Типа : Код:
//Сделать лист Excel активным function Excel_SetListActive(Excel : variant; NumList : integer) :variant; begin Result:=UnAssigned; if not VarIsEmpty(Excel) then begin if NumList>0 then begin if NumList<=Excel.WorkSheets.Count then begin Result:=Excel.ActiveWorkBook.WorkSheets[NumList]; Result.Select; end; end; end; end; //Получить ссылку на лист Excel по номеру function Excel_GetList(Excel : Variant; NumList : integer) : Variant; begin Result:=UnAssigned; if not VarIsEmpty(Excel) then begin if (NumList>0) and (NumList<=Excel.ActiveWorkBook.WorkSheets.Count) then begin Result:=Excel.ActiveWorkBook.WorkSheets[NumList]; end; end; end; //Добавить лист в книгу Excel function Excel_AddLis(Excel : Variant) : Variant; begin Result:=UnAssigned; if not VarIsEmpty(Excel) then begin Result:=Excel.ActiveWorkBook.WorkSheets.Add; end; end; Последний раз редактировалось roamer, 10.09.2010 в 21:48. |
#5
|
|||
|
|||
Вот попробуем. Не знал такой способ.
|
#6
|
|||
|
|||
Только как этим пользоваться?
Что такое Excel а что такое Numllist? Numlist это я понимаю номер листа. С какого начинается с 0 или с 1? То есть можно написать так. Excel_SetListActive(1,2); Перейдешь на второй лист? |
#7
|
|||
|
|||
Я так пробовал.
ExlPrint.Sheets.item('Лист2').Select; Пишет член гурппы не найжен. |
#8
|
|||
|
|||
>Что такое Excel
--- Переменная, где хранится ссылка на сам Excel (как OLE Automation Server). >а что такое Numllist? >Numlist это я понимаю номер листа. --- Да. >С какого начинается с 0 или с 1? --- С единицы. >То есть можно написать так. >Excel_SetListActive(1,2); >Перейдешь на второй лист? --- Да, но 1-й параметр - это ссылка на Excel. Пользоваться примерно так : Код:
function Excel_Open(YesVisible,YesAddWorkBooks : byte) : Variant; begin Result := UnAssigned; Result:=CreateOleObject('Excel.Application'); Result.Visible:=YesVisible; if YesAddWorkBooks>0 then begin Result.Workbooks.Add(); //добавить рабочую книгу end; end; function Excel_OpenFile(fn : string) : Variant; //Открыть файл Excel begin Result:=UnAssigned; fn:=Trim(fn); if length(fn)>0 then begin if FileExists(fn) then begin Result:=Excel_Open(1,0); if not VarIsEmpty(Result) then begin Result.WorkBooks.Open(fn); end; end; end; end; Код:
Var ListExcel, Excel : variant; begin Excel := Excel_OpenFile('C:\123.xls'); ListExcel := UnAssigned; if not VarIsEmpty(Excel) then begin ListExcel := Excel_GetList(Excel,2); //получаем ссылку на 2-й лист if not VarIsEmpty(ListExcel) then begin //проверяем ссылку на корректность ListExcel := Excel_SetListActive(Excel,2); //делаем лист-2 активным end else begin ShowMessage('Ошибка. Лист N 2 не существует (может быть)'); ListExcel := Excel_AddList(Excel); //добавляем лист if not VarIsEmpty(ListExcel) then begin //проверяем ссылку на корректность ListExcel := Excel_SetListActive(Excel,2); //делаем новый лист активным end else begin ShowMessage('Ошибка. Новый Лист не добавлен'); end; end; end else begin ShowMessage('Ошибка при загрузке файла '+fn); end; end; Последний раз редактировалось roamer, 10.09.2010 в 23:15. |
#9
|
|||
|
|||
Благодарю! Супер!
|