Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: CL | DM;

Вниз

Про Excel   Найти похожие ветки 

 
klerk   (2004-09-30 14:54) [0]

Вот пытаюсь загрузить имена всех открытых файлов Excel в Combobox.
ExcelApplication1.Connect;
try
excelapplication1.wo
if  ExcelApplication1.Workbooks.Count=0 then      
begin
Combobox1.items.add("Нет открытых.");
combobox1.ItemIndex:=0;
end
else
   for I := 1 to ExcelApplication1.Workbooks.Count do
  begin
    W := ExcelApplication1.Workbooks[I];
    S:=w.name;
         Combobox1.Items.Add(S);
  end;
finally
  ExcelApplication1.Disconnect;
  combobox1.ItemIndex:=0;

Так он находит один (первый) и всё.
Помогите.


 
klerk   (2004-09-30 14:56) [1]

excelapplication1.wo можно не смотреть - ошибся при копировании:)
Этой строки нет.


 
YurikGL ©   (2004-09-30 15:09) [2]

App : Variant;

try
app := CreateOleObject("Excel.Application");
 App.Visible := True;
if  app.Workbooks.Count=0 then
begin
Combobox1.items.add("Íåò îòêðûòûõ.");
combobox1.ItemIndex:=0;
end
else
  for I := 1 to app.Workbooks.Count do
   Combobox1.Items.Add(app.Workbooks[I].name);
finally
 App:=Unassigned;
end;
end;


 
klerk   (2004-09-30 15:22) [3]

>YurikGL ©
Сделал по-твоему.
Открыто два файла.
А он всё равно пишет в Combobox "Нет".


 
YurikGL ©   (2004-09-30 15:36) [4]


> klerk   (30.09.04 15:22) [3]

Дык это ж запускает новую копию екселя... В ней и нет документов...


 
YurikGL ©   (2004-09-30 15:40) [5]

ExcelApplication1.ConnectKind:=ckRunningInstance;
ExcelApplication1.Connect;
ExcelApplication1.Workbooks.Item[1].Name;
if  ExcelApplication1.Workbooks.Count=0 then
begin
Combobox1.items.add("Íåò îòêðûòûõ.");
combobox1.ItemIndex:=0;
end
else
for I := 1 to ExcelApplication1.Workbooks.Count do
   Combobox1.Items.Add(ExcelApplication1.Workbooks[I].name);
ExcelApplication1.Disconnect;


 
klerk   (2004-09-30 15:50) [6]

ExcelApplication1.ConnectKind:=ckRunningInstance;
ExcelApplication1.Connect;
//ExcelApplication1.Workbooks.Item[1].Name;

if  ExcelApplication1.Workbooks.Count=0 then

       Combobox1.items.add("нет.")

else
       for I := 1 to ExcelApplication1.Workbooks.Count do

               Combobox1.Items.Add(ExcelApplication1.Workbooks[I].name);

Всё равно заносит в combobox одно значение:(
Чего я не понимаю?


 
YurikGL ©   (2004-09-30 15:52) [7]


> klerk   (30.09.04 15:50) [6]

У меня два...На большем количестве не проверял... Может combobox как-то не так настроен?

Использую 2000-е компоненты


 
klerk   (2004-09-30 16:02) [8]

Я использую D5 и его стандартные компоненты.
Переделал всё на Memo.
Результат тот же:(
Добавляет одну строку (Книга1) и всё.


 
YurikGL ©   (2004-09-30 16:22) [9]


> klerk   (30.09.04 15:50) [6]

1) А сколько у тебя ExcelApplication1.Workbooks.Count?
2) Попробуй не две книги, а пять
3) Попробуй книги не с 1-цы а с 0 считать


 
klerk   (2004-09-30 16:29) [10]

1) Showmessage(inttostr(ExcelApplication1.Workbooks.Count)); = 1
2) Попробовал на 6 - то же.
3) Выдаёт : неверный индекс.

:(((((


 
YurikGL ©   (2004-09-30 16:48) [11]


> klerk   (30.09.04 16:29) [10]

Попробуй что-нибудь типа

try
i:=1;
while true do begin
Combobox1.Items.Add(ExcelApplication1.Workbooks[I].name);
inc(i);
              end;
except
end;

Когда дойдет до конца будет исключение...

Хотя извращение это



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

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

Наверх




Память: 0.49 MB
Время: 0.043 c
6-1092033919
Nuke
2004-08-09 10:45
2004.10.17
Скрытые папки


1-1096535034
BorH
2004-09-30 13:03
2004.10.17
Конвертация String[4] в Integer


4-1095248648
P@vel
2004-09-15 15:44
2004.10.17
GlobalLock


1-1096963278
maxistent
2004-10-05 12:01
2004.10.17
DLL в Turbo Pascal


1-1096458548
Gemini
2004-09-29 15:49
2004.10.17
Узнать размеры окна