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