Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Работа с Excel из Delphi


Автор: DimassS 12.4.2006, 05:51
Никак не могу программно выделить диапазон ячеек в Excel, помогите кто знает. Пока зациклился на этом:


Код

var
  i,j,l,y,t: integer;
  Excel: Variant;
  a: array [0..100] of string;
  p,o: string;
begin
Excel := CreateOleObject('Excel.Application');
   Excel.Visible := True;
  Excel.WorkBooks.Add;
  l:=DataModule1.Query1.FieldCount-1 ;
  DataModule1.Query1.First;
   i:=0;
    repeat
    begin
    i:=i+1;
    for j:=0 to l do
    begin
    y:=j+1;
    t:=y+1;
      p:=DBGridEh1.Columns[j].Title.Caption;
      o:=DBGridEh1.Columns.Items[j].Title.Caption;
      if (p=o) then begin
      Excel.ActiveWorkBook.ActiveSheet.range(cells(i,y),cells(i,t)).select;//хочу выделить  но выкидывает сообщение "Член группы не найден"
      Excel.ActiveWorkBook.ActiveSheet.range.Selection.Merge;//затем объединить
       end;
      
      DataModule1.Query1.Next;
      end;
  end;
  until DataModule1.Query1.Eof;  }

Автор: Albinos_x 12.4.2006, 07:56
Цитата

cells(i,y)

Это что?

PS: пользуйтесь тегом [code=delphi]

Автор: ~FoX~ 12.4.2006, 08:04
Range('A1:E11').Select
вроде так.

Автор: Albinos_x 12.4.2006, 08:15
к примеру у меня так работает без проблем:
Код
...
for j:=1 to cont-1 do
     begin
     sim:=AddresColExcel(5+j*5)+'6';
     sim1:=AddresColExcel(10+J*5)+'9';
     ExcelApplication1.Range[sim, sim1].MergeCells:=true;
...

AddresColExcel -> http://forum.vingrad.ru/index.php?showtopic=84634

Автор: Albinos_x 12.4.2006, 08:59
это тоже не прокатит:
Цитата

Excel.ActiveWorkBook.ActiveSheet.range.Selection.Merge


читай статью по указанной выше ссылке там всё подробно расписано, как работать с Excel...

Автор: DimassS 12.4.2006, 09:15
Всем большое, прибольшое спасибо!!!!! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)