Требуется перенести в кода Excel Buffer код VBA под Excel.
В частном случае, следующий:
Код:
srcRange = "Отчет!R1C1:R1268C11"
destRange = "Сводная!R5C2"
pivotName = "СводнаяТаблица1"
ActiveWorkbook.PivotCaches.Add(1, srcRange).CreatePivotTable destRange, pivotName, 1
With Sheets("Сводная!").PivotTables("СводнаяТаблица1").PivotFields("Должность")
.Orientation = 1
.Position = 1
End With
...
...
ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _
("СводнаяТаблица1").PivotFields("Сумма"), "Сумма по полю Сумма", -4157
здесь на основе данных одного листа создается сводная таблица на другом. я начинаю создавать в Excel Buffer
функцию.
Код:
CreatePivot(PivotName : Text[250];SheetName : Text[250];SrcSheetName : Text[250];SrcBegRow :
Integer;SrcBegCol : Integer;SrcEndRow : In ... (и т.п. - параметры)
// лист для сводной таблицы
XlWorkSheet := XlWorkBook.Worksheets.Add;
XlWorkSheet.Name := SheetName;
// дипазон-источник
srcrange:=srcsheetname+'!R'+format(srcBegRow)+'C'+format(srcBegCol)+':R'+format(srcendRow)+'C'+format(srcend
col);
// сводная таблица
XlWorkBook.PivotCaches.Add(1, srcrange).CreatePivotTable(sheetname+'!R5C2',PivotName,1);
// настройка сводной таблицы
XlWorkSheet.PivotTables(PivotName).PivotFields('Должность').Orientation = 1;
и тут мне пришлось остановиться - последняя строчка данного кода не компилится. ругается на отсутсвие
PivotFields.
попробовал создавать Globals с типом Automation и т.д. по аналогии с др. "экселевскими" Globals - никак!!!
что же делать? подскажите, как правильно "переводить" обектно-ориентированный код?
Спасибо.