![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объеденить ячейки в 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]Черт... ну, неужели никто не знает :-|