Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Объеденить ячейки в Excel'e


Godness ©   (2004-06-28 23:00:00) 

Доброго всем времени суток... Нужна ваша помощь. Подскажите пожалуйста, как объеденить ячейки в экселе. Т.е. у меня есть код примерно следующего содержания

var E: Variant;
   f: integer;
...

 E.ActiveWorkbook.WorkSheets[1].Cells[f,1].Value := 'ляляля';
 E.ActiveWorkbook.WorkSheets[1].Range['A4:AK4'].Copy;
 E.ActiveWorkbook.WorkSheets[1].Range['A' + inttostr(f) + ':AK' + inttostr(f)].Select;
 E.ActiveWorkbook.WorkSheets[1].Paste;
 E.ActiveWorkbook.WorkSheets[1].Cells[f,1].Value := 'еще раз ляляля';


 а, теперь мне нужно диапазон 'A6:AK6' обьеденить, т.е. чтобы этот диапазон был как одна ячейка. Т.е. отображал значение только крайней левой верхней ячейки. Что-то вроде

 E.ActiveWorkbook.WorkSheets[1].Range['A6:AK6'].(объеденить ?)

 Надеюсь понятно выразился :)... Заранее спасибо...


Godness   (2004-06-30 20:48:00) [1]

Большое спасибо! 8)...


YurikGL   (2004-06-29 19:03:00) [2]


> Jann ©   (29.06.04 18:46) [6]

А я вообще не парился :)[3]


Jann   (2004-06-29 18:46:00) [3]

Все просто я тоже долго парился над этим.
Вот код примерный:
xl.Range['A2:S2'].Select;
xl.Selection.MergeCells := true;


Тимохов   (2004-06-29 18:24:00) [4]


> Godness   (29.06.04 18:12) [1]

не ругайтесь: давно бы сами ответ нашли использую следующий метод:
1. Откройте ексель
2. начните запись макроса
3. сделайте то, что вам нужно (в данном случае объедините ячейки)
4. остановите запись
5. посмотрите на код vb, который получился - надо нажать alt+f11.
6. скоприуйте в дельфи, адаптируйте и пользуйте...


wisekaa   (2004-06-29 18:18:00) [5]

with ExcelApp do
 with Range[Range1,Range2] do
  begin
   Orientation := OleVariant(0);
   MergeCells := OleVariant(True);
   Borders[xlDiagonalDown].LineStyle := OleVariant(xlNone);
   Borders[xlDiagonalUp].LineStyle := OleVariant(xlNone);
   Borders[xlEdgeLeft].LineStyle := OleVariant(xlContinuous);
   Borders[xlEdgeLeft].Weight := OleVariant(xlThin);
   Borders[xlEdgeLeft].ColorIndex := OleVariant(xlAutomatic);
   with Borders[xlEdgeTop] do
    begin
     LineStyle := OleVariant(xlContinuous);
     Weight := OleVariant(xlThin);
     ColorIndex := OleVariant(xlAutomatic);
    end;
   with Borders[xlEdgeTop] do
    begin
     LineStyle := OleVariant(xlContinuous);
     Weight := OleVariant(xlThin);
     ColorIndex := OleVariant(xlAutomatic);
    end;
   with Borders[xlEdgeBottom] do
    begin
     LineStyle := OleVariant(xlContinuous);
     Weight := OleVariant(xlThin);
     ColorIndex := OleVariant(xlAutomatic);
    end;
   with Borders[xlEdgeRight] do
    begin
     LineStyle := OleVariant(xlContinuous);
     Weight := OleVariant(xlThin);
     ColorIndex := OleVariant(xlAutomatic);
    end;
   with Borders[xlInsideVertical] do
    begin
     LineStyle := OleVariant(xlContinuous);
     Weight := OleVariant(xlThin);
     ColorIndex := OleVariant(xlAutomatic);
    end;
    with Borders[xlInsideHorizontal] do
     begin
      LineStyle := OleVariant(xlContinuous);
      Weight := OleVariant(xlThin);
      ColorIndex := OleVariant(xlAutomatic);
     end;
  end;


YurikGL   (2004-06-29 18:15:00) [6]

Вот, нашел
Excelapplication1.Range['A1','D1'].Merge(EmptyParam);


YurikGL   (2004-06-29 18:13:00) [7]

E.ActiveWorkbook.WorkSheets[1].Range['A6:AK6'].merge ?


Godness   (2004-06-29 18:12:00) [8]

Черт... ну, неужели никто не знает :-|


Наверх

Титульная страница Поиск, карта сайта Написать письмо