Замена из 1С формул значениями внутри граф. объектов Excel

Программирование на Visual Basic for Applications
Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Замена из 1С формул значениями внутри граф. объектов Excel

Сообщение Rust » 30.10.2007 (Вт) 17:47

На листе Excel есть графические объекты, внутри которых формулы.
Необходимо формулы заменить вычисленными значениями.
Если транслировать нижеприведённый код в код VBA, то процедура отрабатывает нормально, но в 1С не отрабатывает вторая строка цикла.

Ехсеl=СоздатьОбъект("Excel.Application");
Ехсеl.Workbooks.Open("C:\TEST.xls");
ЧислоОбъектовНаЛисте=Ехсеl.Sheets(1).Shapes.Count;
Для i=1 по ЧислоОбъектовНаЛисте Цикл
Ехсеl.Sheets(1).Shapes(i).Select();
Ехсеl.ExecuteExcel4Macro("FORMULA("""")"); //не отрабатывает
КонецЦикла;

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 31.10.2007 (Ср) 1:38

Тут есть нюанс - нужно указывать имена функций с учётом локализации MSO. Вот рабочий примерчик для 1цэ (8 версии) и русского офиса:
Код: Выделить всё
xl = new COMОбъект("Excel.Application");
xl.Workbooks.Add().Worksheets(1).Range("B2").Select();
xl.ExecuteExcel4Macro("ФОРМУЛА(""=""""Проверка"""""")");
xl.Selection.Offset(1, 1).Select();
xl.ExecuteExcel4Macro("ФОРМУЛА(""=TODAY()"")");
xl.Selection.EntireColumn.AutoFit();
xl.visible = true;

Rust
Новичок
Новичок
 
Сообщения: 42
Зарегистрирован: 01.02.2005 (Вт) 14:41

Сообщение Rust » 31.10.2007 (Ср) 9:00

Спасибо, Gloom!
xl.ExecuteExcel4Macro("ФОРМУЛА(""=TODAY()"")"); - то, что надо.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 117

    TopList