Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.26;
Скачать: 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 вся ветка

Текущий архив: 2006.02.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
8-1126933826
Xerx
2005-09-17 09:10
2006.02.26
Быстрый вывод треугольника


2-1139443081
VitalikS
2006-02-09 02:58
2006.02.26
CD-ROM


15-1139001961
Gero
2006-02-04 00:26
2006.02.26
Баннер справа


2-1139221023
kyn66
2006-02-06 13:17
2006.02.26
Сканировать содержимое папки


2-1139130196
JEK2
2006-02-05 12:03
2006.02.26
конвертировать таблицу *.DBF в *.DB