Имя: Пароль:
1C
1С v8
Знатокам VBA, не работает код VBA Excel при выгрузке из 1С
0 бегинер
 
15.08.16
14:00
есть файл эксель, открываю программно, хочу программно обновить(пересчитать) сводную таблицу на 1 первом листе, в vba код в одну строчку и успешно работает под excel:

Worksheets(1).PivotTables(1).PivotCache.Refresh

при открытии через 1с этот код не работает, ругается:

ФормаСписка.Форма(142)}: Поле объекта не обнаружено (PivotCache)
книга.Worksheets(1).PivotTables(1).PivotCache.Refresh();

вот код:

Попытка
        эксель = Новый COMОбъект("Excel.Application");
        эксель.visible=1;
    Исключение
        Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
    КонецПопытки;
    
    путь="d:\Мусор\";
    ИмяФайла=путь+"имя.xlsx";
    Попытка
        книга = эксель.WorkBooks.Open(ИмяФайла);
    Исключение
        Сообщить("Ошибка открытия файла Microsoft Excel." + ИмяФайла + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
    КонецПопытки;
    сообщить(книга.worksheets(1).PivotTables(1).name);
    книга.Worksheets(1).PivotTables(1).PivotCache.Refresh();


цитата из справки по обьектной модели экселя:
===========================
Excel Developer Reference
PivotCache.Refresh Method
Causes the specified chart to be redrawn immediately.
Syntax

expression.Refresh

expression   A variable that represents a PivotCache object.

Example
This example refreshes the PivotTable cache for the first PivotTable report on the first worksheet in a workbook.

Visual Basic for Applications
Worksheets(1).PivotTables(1).PivotCache.Refresh

===========================

почему не работает - подскажите пжста
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший