Вниз
Скачать: CL | DM;

Excel2000   Найти похожие ветки 

 
nstur   (2006-01-25 12:04) [0]

Подскажите как сделать активным лист в Excel из Делфи.
У меня шаблон из 4-х листов. Необходимо поочередно заполнять их.
Пробую выполнить:
p:= ""КредитОМТС";
OleVariant(ExcelReport.Application).Sheets.Select(p);
выдает ошибку.

Подскажите, как активизировать лист?


 
neat   (2006-01-25 12:10) [1]

Excel.WorkBooks[i].Sheets[j].Activate;


 
nstur   (2006-01-25 12:33) [2]

Прошу прощения, но Sheets нет метода Activate.


 
neat   (2006-01-25 12:47) [3]

Я только немного работал с Excel, извиняюсь не проверил, взял пример из
справочника www.delphiword.narod.ru. Там же

Excel.Workbooks[i].ActiveSheet.Name := ...


 
eugie   (2006-01-25 13:05) [4]

vExSheet:=TexcelWorkSheet.Create([владелец]);

for i:=1 to [количество листов в книге]-1 do
begin
 vExSheet.ConnectTo(vExApp.Worksheets[1] as _WorkSheet)
 ....
 [операции с объектами на листе]
 ....
end;


 
eugie   (2006-01-25 13:24) [5]

пардон:
vExSheet:=TexcelWorkSheet.Create([владелец]);

for i:=1 to [количество листов в книге]-1 do
begin
vExSheet.ConnectTo(vExApp.Worksheets[i] as _WorkSheet)
....
[операции с объектами на листе]
....
end;


 
Алексей Петухов   (2006-01-25 20:07) [6]

Вообще вариантов одного и тогоже же дйствия с этими майкрософтовскими серверами может быть несколько.
Самый быстрый способ найти хотябы один вариант это подсмотреть как сам Excel это делает. Т.е. нажать в Excele кнопку "Начать запись макроса" протом сделать необходимые действия и окончить запись, затем посмотреть на получившийся код в VB и переписать, адаптировав, в ObjectPascal.


 
Shirson ©   (2006-01-26 00:00) [7]


> nstur   (25.01.06 12:33) [2]
> Прошу прощения, но Sheets нет метода Activate


Вообще-то и к Sheets так не обращаются.

uses comobj;

procedure TForm1.Button1Click(Sender: TObject);
var
xl:variant;
begin
xl:=CreateOleObject("Excel.Application");
xl.visible:=true;
xl.workbooks.add;
xl.activeworkbook.Sheets.item[3].select;
end;


 
Shirson ©   (2006-01-26 00:00) [8]


> nstur   (25.01.06 12:33) [2]
> Прошу прощения, но Sheets нет метода Activate


Вообще-то и к Sheets так не обращаются.

uses comobj;

procedure TForm1.Button1Click(Sender: TObject);
var
xl:variant;
begin
xl:=CreateOleObject("Excel.Application");
xl.visible:=true;
xl.workbooks.add;
xl.activeworkbook.Sheets.item[3].select;
end;


 
Fay ©   (2006-01-26 00:39) [9]

2 Shirson ©   (26.01.06 0:00) [8]
> Вообще-то и к Sheets так не обращаются.
В смысле?


 
eugie   (2006-01-26 05:03) [10]

Определитесь, какой способ работы с excel вы хотите использовать: через раннее или позднее соединение - от этого будет зависеть и способ обращения к листам книги. Мой пример - для раннего соединения, можно, конечно и для позднего "нарисовать"...


 
nstur   (2006-01-26 08:03) [11]

Алексей Петухов. Я всегда стараюсь сначало посмотреть, как происходит работа в макросах. Но реализация макроса не всегда совпадает с TExcelApplication

Shirson Спасибо.
Немного изменил Ваш пример и все получилось.
OleVariant(NsExcel.ActiveWorkbook.Sheets.Item[3]).select;

eugie Большое спасибо за пример. Помогло разобраться.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
15-1138713104
kozhanov
2006-01-31 16:11
2006.02.26
"резиновая" линия...


2-1139398228
nap<>
2006-02-08 14:30
2006.02.26
SQL запрос


1-1137755539
Alex_KV
2006-01-20 14:12
2006.02.26
сообщения в TabSheet


1-1138030129
DelphiLexx
2006-01-23 18:28
2006.02.26
Как на Delphi организовать вычисления логарифма


2-1139682980
Интересующийся
2006-02-11 21:36
2006.02.26
Получить данные из INI




   Наверх