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

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

Покрасить итоги в pivot Excel


OW ©   (2011-05-31 09:57:00) 

пишу

   Workbook.PivotCaches.Add( xlDatabase, 'Данные!R1C1:R' + IntToStr(i) + 'C' + IntToStr(j-1)).CreatePivotTable('', 'СводнаяТаблицаА',true);
   ActiveSheets := WorkBook.WorkSheets[1];
   ActiveSheets.Name := 'Сводный отчет';
   ActiveSheets.PivotTables('СводнаяТаблицаА').PivotFields('DT').Orientation := xlRowField;
...
ActiveSheets.PivotTables('СводнаяТаблицаА').PivotFields('SUMM').Orientation := xlDataField;

все хорошо, начинаю красоту наводить

ActiveSheets.PivotTables('СводнаяТаблицаА').DataPivotField.PivotItems('Сумма по полю SUMM').Name := 'сумма';

ок

теперь хочу покрасить
макрос говорит
   ActiveSheet.PivotTables("СводнаяТаблицаА").PivotSelect _
       "сумма 'Column Grand Total'", xlDataAndLabel, True
   With Selection.Interior
       .ColorIndex = 41
       .Pattern = xlSolid
   End With

не понимаю что писать надо. Не подскажете?

Method 'Interior' not supported by automation object
EOleError


OW   (2011-06-01 15:34:00) [1]


> ActiveSheets.PivotTables('СводнаяТаблицаА').DataPivotField.
> PivotItems('Сумма по полю SUMM').Name := 'сумма';

а вот так не желает работать в 2007 Ёкселе. Может кому пригодится.


Dennis I. Komarov   (2011-05-31 17:43:00) [2]


> OW ©   (31.05.11 17:09) [9]

Я тебе еще утром предлагал :-)


OW   (2011-05-31 17:09:00) [3]

а, и так пойдет :)
не чего голову ломать, не критично.


OW   (2011-05-31 12:03:00) [4]

//    Selection.Interior.ColorIndex := OleCtrls.TOleEnum(6);

//    LW := 6; //LW: LongWord;
//    Selection.Interior.ColorIndex := LW;

//    Selection.Interior.ColorIndex := LongWord(6);
тоже самое
Invalid variant operation
EVariantInvalidOpError


Плохиш   (2011-05-31 11:44:00) [5]

TOLeEnum(6)


OW   (2011-05-31 11:21:00) [6]

Угу..
Переписал.
Вот так работает
   
ActiveSheets.PivotTables('СводнаяТаблицаА').DataPivotField.PivotItems('Сумма по полю SUMM').Name := 'сумма';

   Selection := ActiveSheets.PivotTables('СводнаяТаблицаА').PivotSelect('DEPT[All;Total] сумма', xlDataAndLabel, True);

ExcelApp.Visible := True;


Excel показывается, то что мне надо, выделено.
остается только нажать на кнопке с цветом

Макрос говорит, что он при этом делает
   With Selection.Interior
       .ColorIndex = 6
       .Pattern = xlSolid
   End With

а если я пишу

   Selection := ActiveSheets.PivotTables('СводнаяТаблицаА').PivotSelect('DEPT[All;Total] сумма', xlDataAndLabel, True);

Selection.Interior.ColorIndex := 6;

получаю
Invalid variant operation
EVariantInvalidOpError


sniknik   (2011-05-31 10:22:00) [7]

т.е. он говорит
> ActiveSheet.PivotTables("СводнаяТаблицаА"). PivotSelect "сумма 'Column Grand Total'"
а ты делаешь
> ActiveSheets.PivotTables('СводнаяТаблицаА'). DataPivotField.PivotItems(' сумма').I nterior.ColorIndex := 36;

?
ты в макросе смену имени делал до этого?


Dennis I. Komarov   (2011-05-31 10:22:00) [8]

Может Method 'Interior' есть только у 'Selection'...

Хотя не нравится мне 'not supported by automation object'


OW   (2011-05-31 10:14:00) [9]


> макрос говорит
>    ActiveSheet.PivotTables("СводнаяТаблицаА").PivotSelect
> _
>        "сумма 'Column Grand Total'", xlDataAndLabel, True
>    With Selection.Interior
>        .ColorIndex = 41
>        .Pattern = xlSolid
>    End With


sniknik   (2011-05-31 10:11:00) [10]

> не понимаю что писать надо.
а что говорит макрос? т.е.практически стандартная операция в случае работы с екселем...


OW   (2011-05-31 09:58:00) [11]

т.е. так попробовал

ActiveSheets.PivotTables('СводнаяТаблицаА').DataPivotField.PivotItems('сумма').I nterior.ColorIndex := 36;

Method 'Interior' not supported by automation object
EOleError


Наверх

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